Logto 製品アップデート
Logto v1.46.0 が登場しました。本バージョンでは、OIDC ステップアップ認証、Ethereum でのサインイン、iOS の「パスワードを保存」プロンプトを保持する方法、セルフサービスによる個人用アクセストークン、セキュリティの強化が含まれています。
Logto v1.46.0 が登場しました。本バージョンでは、OIDC ステップアップ認証、Ethereum でのサインイン、iOS の「パスワードを保存」プロンプトを保持する方法、セルフサービスによる個人用アクセストークン、セキュリティの強化が含まれています。
Logto v1.46.0 では、機密性の高い操作向けの OIDC ステップアップ認証、Ethereum でのサインイン、iOS の「パスワードを保存」プロンプトを保持する方法、Account Center でのセルフサービス個人用アクセストークン、GeeTest CAPTCHA、SAML 静的属性、そしてセキュリティ強化が導入されています。新機能をご紹介します。
アプリは、標準の OIDC パラメータを利用して、機密性の高い操作の前に直近またはより強力なサインインを要求できるようになりました。
acr_values と max_age を認可リクエストで渡し、ID トークン、アクセストークン、イントロスペクションレスポンスから acr、amr、auth_time を参照します。対応する ACR 値はディスカバリードキュメントで公開されています。max_age によるより短いウィンドウ指定も可能です。セットアップや詳細は Step-up authentication guide を参照してください。
新しい Ethereum Wallet ソーシャルコネクタ(@logto/connector-siwe)で、ユーザーは EVM ウォレットでサインインできます。ブラウザウォレット(注入された EIP-1193 プロバイダー)がある場合、サインインページから離脱せず EIP-4361 のサインインメッセージに署名します。1つのアドレスでサポートされる EVM チェーンすべてに対応し、管理者が許可チェーン ID を制限可能です。
iOS では、ASWebAuthenticationSession がアプリのコールバック URL を検知するとすぐに終了するため、パスワードサインイン直後にシステムの「パスワードを保存」プロンプトも消えてしまいます。
新しい confirm_redirect_policy=password サインインパラメータを渡すことで、ユーザーがパスワード入力後、「続ける」ページを表示できます。このページで「続ける」を選択したタイミングでアプリに戻るため、プロンプトが画面に残ります。パラメータなしの場合は従来通り即リダイレクトされます。
Console の Swift 統合ガイドで使い方を確認できます。詳細は Keep the iOS Save Password prompt をご覧ください。
アカウントセンターで個人用アクセストークンが有効な場合、ユーザーはアカウントセンター セキュリティ ページで自分自身のトークンを作成、リネーム、取り消しできます。各トークンは作成時の 1 回のみ表示され、最大 365 日間有効です。
同じ操作は、Account API の /api/my-account/personal-access-tokens エンドポイントから行え、新しい urn:logto:scope:personal_access_tokens スコープが利用可能です。
mfa.required を設定できます。組織レベルの MFA ポリシーに関わらず、次回サインイン時に必ず MFA を設定させます。Legacy パスワードアルゴリズム経由で SHA-crypt($5$ および $6$)のパスワードハッシュを持つユーザーをインポート可能です。access_denied:同意ページをキャンセル、または直接サインイン失敗時、access_denied でクライアントアプリに戻るようになりました。カスタムサインイン体験では POST /api/experience/abort で同様の終了処理が可能です。login_hint:任意の Account Center URL に login_hint を追加すると、サインイン時に識別子が自動入力されます。staticAttributes を利用します。same-origin-allow-popups または same-origin が選択できます。デフォルトはヘッダー未送信であり、ポップアップによるサインインも問題なく動作します。GET /api/users は繰り返し可能な customData クエリパラメータを受け入れます(例:customData={"customId":114514})。GET /api/organizations で jitEmailDomain クエリパラメータを指定すると、そのメールドメインのユーザーがプロビジョニングされる組織を取得できます。hasPassword:GET /api/organizations/:id/users で、各メンバーがパスワード設定済みかが表示されるようになりました。deliveryId:全ウェブフックペイロードに deliveryId が付与され、再送時にも同一値が利用されるため、一意な処理が可能です。また、この値は配信時の監査ログエントリ ID でもあります。今リリースには、MFA、ソーシャル・エンタープライズサインイン、Account API、Logto Tunnel 全体のセキュリティ修正が含まれています。
Range リクエスト上限制限を行います。詳細は v1.46.0 release notes を参照してください。
502 connector.social_provider_unreachable、認可拒否時は 401 connector.authorization_failed、コネクタエラーは実際のプロバイダーメッセージを表示します({} ではありません)。scope 値の対応:OpenAI Codex など先頭にスペースがある scope を送るリフレッシュトークンリクエストが invalid_scope で失敗しなくなり、ユーザーがセッションを維持できます。customClientMetadata キーは拒否されるため、refreshTokenTtlInDay など Typo が黙って通過しなくなりました。o365role などの属性名をマッピングした場合、ユーザーの値が返り、リテラルプレースホルダーになりません。expires_in の文字列・scope の配列形式を受理。Patreon コネクタは API v2利用となり Patroen サインインが再び機能します。Cannot find 'client' in scope エラーが発生しません(Thanks to @timokoethe)。logto db alteration deploy コマンドで DB 変更を反映してください。/console リクエストが設定済み管理エンドポイントと一致しない場合、警告ログを記録し ADMIN_ENDPOINT 設定ミスの検出を支援します。このリリースに貢献いただいたコミュニティメンバーに感謝します:
deliveryId (#9882)、組織メンバー用 hasPassword (#9883)、JIT プロビジョニングドメインによる組織絞り込み (#9912)、customClientMetadata キー検証 (#9931)、ソーシャルサインインエラーの明確化 (#9879, #9880)、DB 再接続 (#9881, #9928)、コネクタリクエストエラーハンドリング (#9849)ADMIN_ENDPOINT ミスマッチ警告 (#9408)アップグレードする準備はできていますか?手順については アップグレードガイド をご確認ください。
全変更一覧は GitHub リリースページ でご覧いただけます。