12.6. メンバーの認証
レルムに対して組織を有効にすると、ユーザー認証が変更されます。ユーザーが組織のコンテキストで認証されていると認識された場合、認証フローは組織ごとに変わります。
レルムが作成されると、認証フローが自動的に更新され、組織のメンバーを認証してオンボードするための特定の手順が有効になります。更新された認証フローは次のとおりです。
- ブラウザー
- first broker login
Browser flow の主な変更点は、デフォルトで identity-first ログインに設定され、認証情報の入力を求める前にユーザーが識別されるようになったことです。first broker login フローに関する主な変更点は、ユーザーが組織に関連付けられたアイデンティティープロバイダーを通じて認証され、フローを正常に完了すると、自動的に組織のメンバーとして追加されることです。
identity-first ログインを使用するかどうかの選択は、レルム内の組織の存在によって決まります。組織が存在しない場合、ユーザーは通常の手順に従ってユーザー名とパスワードを使用して認証するか、Browser Flow で設定されているその他の手順に従います。それ以外の場合、ユーザーは、レルムへの認証を続行するために、まずユーザー名またはメールの入力を求められます。
identity-first ログインの主な目的は、以下のようにユーザーを特定することです。
- ユーザーは既存ユーザーですか、それとも新規ユーザーですか?
- ユーザーはレルム内のいずれかの組織のメンバーですか?
- 組織のメンバーの場合、ユーザーは組織に関連付けられたアイデンティティープロバイダーにリンクされていますか?
ユーザーを特定する際の結果に応じて、認証フローは変更されます。つまり、ユーザーの認証情報を要求して認証を続行するか、または最終的にアイデンティティープロバイダーを通じて組織のセキュリティー境界内で認証するように自動的にユーザーをリダイレクトします。
12.6.1. identity-first ログインについて リンクのコピーリンクがクリップボードにコピーされました!
ユーザー名が提供された後にユーザーを識別することに加えて、identity-first ログインは以下も行います。
- メールドメインを組織に一致させます。
- 指定されたユーザー名のアカウントがすでに存在する場合、認証フローを続行するかどうかを決定します。
- ドメインとアイデンティティープロバイダーが組織にどのように設定されているかに応じて、ユーザーを認証する方法を決定します。
- メールのドメインがアイデンティティープロバイダーに設定されたドメインと一致する場合、組織に関連付けられたアイデンティティープロバイダーを通じてユーザーをシームレスに認証します。
identity-first ログインでは、ユーザー名とパスワードフィールドを備えた通常のログインページで提供されるものと同じ機能が提供されます。ユーザーは引き続き、登録リンクをクリックして自己登録することも、そのレルム内の組織にリンクされていない任意のアイデンティティーまたはソーシャルブローカーを選択することもできます。
identity-first ログインページ
存在しないユーザーの場合、そのユーザーが組織ドメインと一致するメールドメインを使用して認証を試みると、入力されたユーザー名が無効であるというメッセージとともに、identity-first ログインページが再度表示されます。この時点では、ユーザーに認証情報を求める必要はありません。
ユーザーが存在しない場合は identity-first
ユーザーを登録して、そのユーザーがレルムに対して認証し、組織に参加できるようにするには、いくつかのオプションがあります。
レルムで自己登録設定が有効になっている場合、ユーザーは identity-first ログインページで Register リンクをクリックして、レルムでアカウントを作成できます。その後、管理者はユーザーに招待リンクを送信するか、手動でユーザーを組織のメンバーとして追加することができます。詳細は、メンバーの管理 を参照してください。
組織にドメインのないアイデンティティープロバイダーがあり、Hide on login page 設定が オフ になっている場合は、ユーザーは identity-first ログインページでアイデンティティープロバイダーリンクをクリックして、アイデンティティープロバイダーを通じて認証されると自動的にアカウントを作成し、組織に参加することもできます。詳細は、アイデンティティープロバイダーの管理 を参照してください。
前のセクションと同様の状況では、組織は組織ドメインの 1 つでアイデンティティープロバイダーを設定している場合があります。この場合、ユーザーのメールが組織の特定のドメインと一致すると、ユーザーはアイデンティティープロバイダーにリダイレクトされます。フローが完了すると、アカウントが作成され、ユーザーが組織に参加します。
12.6.2. 既存の認証フローの設定 リンクのコピーリンクがクリップボードにコピーされました!
新しいレルムについて前述したように、認証フローは、組織をサポートし、そのメンバーを認証するために必要な手順で自動的に更新されます。既存のレルムの場合、組織をレルムに対して有効にするだけでなく、既存の (カスタム) 認証フローを手動で更新する必要もあります。
次の手順に従って Browser Flow を変更します。
手順
- 現在使用しているフローを壊さないように、Browser Flow バインディングタイプにバインドされた現在のフローを複製します。
- Add sub-flow をクリックし、My Organization などの名前を付けます。
- 新しく追加された My Organization サブフローを、Identity Provider Redirector 実行ステップの直後に実行されるように移動します。ここでの主なポイントは、このサブフローが、レルム内でサポートされる任意の認証情報を使用してユーザーを認証する他のサブフローまたは実行ステップよりも前に、実行される必要があるということです。追加したら、Requirement を Alternative に変更します。
- My Organization サブフローの Add sub-flow をクリックし、My Organization - Conditional などの名前を付けます。追加したら、Requirement を Conditional に変更します。
- My Organization - Conditional サブフローで Add condition をクリックし、Condition - user configured を選択します。追加したら、Requirement を Required に変更します。
My Organization - Conditional サブフローで Add step をクリックし、*Organization Identity-First Login を選択します。
- 実行ステップ。追加したら、Requirement を Alternative に変更します。
- 認証フローを Browser バインディングタイプにバインドします。
組織の Browser Flow
レルムで Organizations 設定を有効化し、少なくとも 1 つの組織を作成すると、identity-first ログインページが表示され、レルム内の組織の使用を開始できるようになります。
次の手順に従って、first broker login フローを変更します。
手順
- 現在使用しているフローを壊さないように、First broker login flow バインドタイプにバインドされている現在のフローを複製します。
-
Add sub-flow をクリックし、
Organization Member - Conditionalなどの名前を付けます。追加したら、Requirement を Conditional に変更します。 - Organization Member - Conditional サブフローで Add condition をクリックし、Condition - user configured を選択します。追加したら、Requirement を Required に変更します。
- Organization Member - Conditional サブフローで Add step をクリックし、Organization Member Onboard 実行ステップを選択します。追加したら、Requirement を Required に変更します。
- 認証フローを First broker login バインディングタイプにバインドします。
組織の first broker フロー
これで、組織に関連付けられた任意のアイデンティティープロバイダーを使用して認証できるようになり、ユーザーが初回ブラウザーログインフローを完了するとすぐに、その組織にメンバーとして参加できるようになります。
12.6.3. ユーザーの認証方法の設定 リンクのコピーリンクがクリップボードにコピーされました!
フローが組織をサポートしている場合は、いくつかの手順を設定して、ユーザーがレルムに対して認証する方法を変更できます。
たとえば、ユースケースによっては、ユーザーがレルム内の任意の組織または特定の組織のメンバーである場合にのみ、レルムに対して認証を行う必要があります。
この動作を有効にするには、Organization Identity-First Login 実行ステップで設定をクリックして、Requires user membership 設定を有効にする必要があります。
有効にした場合、ユーザーが identity-first ログインページでユーザー名またはメールアドレスを入力したときに、サーバーがクライアントからの要求に応じて、既存のメンバーシップを確認するか、organization スコープのセマンティクスに基づいて、そのユーザーがメンバーである組織の解決を試みます。組織のメンバーでない場合は、エラーページが表示されます。