シナリオ別の要件
ポータルが呼び出す各リソースサーバー (My Account APIとMy Organization API) には、次の2つが必要です。
- クライアントへの認可:アプリケーションがスコープをリクエストできるようにします。
- リフレッシュトークンポリシー:ポータルサーバーがを、そのリソースサーバー用のアクセストークンと交換できるようにします。
My Account APIのスコープ
My Account APIのスコープ
オーディエンス:
https://YOUR_DOMAIN/me/read:me:factorsread:me:authentication_methodscreate:me:authentication_methodsdelete:me:authentication_methods
My Organization APIのスコープ
My Organization APIのスコープ
オーディエンス:
https://YOUR_DOMAIN/my-org/read:my_org:detailsupdate:my_org:detailsread:my_org:configurationread:my_org:domainscreate:my_org:domainsupdate:my_org:domainsdelete:my_org:domainsread:my_org:identity_providerscreate:my_org:identity_providers_domainsdelete:my_org:identity_providers_domains
推奨設定
ポータルアプリケーションには、以下の設定を使用してください。リフレッシュトークンの有効期間はポータルのセッションに合わせて、無操作時は1時間、合計で1日としています。スコープは Portal で使用するコンポーネントに必要なものだけを付与し、Portal が呼び出さないリソースサーバーについては、そのポリシーとグラントを削除してください。- Auth0 Dashboard
- Management API
1
アプリケーションを作成する
Auth0 Dashboard > Integration > Applicationsに移動してCreate Applicationを選択し、Regular Web Applicationsを選んで名前を入力します。
2
URLを設定する
Settingsタブで、Allowed Callback URLsに
https://YOUR_DOMAIN/portals/auth/callbackを設定します。Allowed Logout URLsには、アプリケーションのURLを設定します。これは、ユーザーがPortalからログアウトした後に移動する先です。3
トークンエンドポイントのIPヘッダーを信頼する
CredentialsタブのAdvancedで、Trust token endpoint IP headerを有効にします。
4
グラントタイプを設定する
Advanced Settings > Grant Typesで、Authorization Code、Refresh Token、MFAを有効にします。その他のグラントタイプはすべて無効のままにしておきます。
5
リフレッシュトークンの有効期間を設定する
Refresh Token ExpirationでSet Idle Refresh Token Lifetimeを有効にし、3600秒と入力します。続いてSet Maximum Refresh Token Lifetimeを有効にし、86400秒と入力します。リフレッシュトークンのローテーションは、デフォルトのまま無効にしておきます。
6
Organizationsを許可する
Organizationsタブで、Type of UsersをBothに、Login FlowをNo Promptに設定します。
7
APIアクセスを付与する
API Accessタブで、My Account APIとMy Organization APIへのユーザーアクセスを認可します。その際、シナリオ別の要件に記載されたスコープを指定してください。
8
Multi-Resource Refresh Tokenを有効にする
Multi-Resource Refresh Tokenで、同じAPIとスコープを有効にします。最後にSave Changesを選択します。
変更してはいけない設定
これらの設定はPortalの動作に関わるため、変更しないでください。- DPoPを有効にしないでください。 Portalサーバーは機密クライアントであり、sender-constrainedトークンを使用しません。
- リフレッシュトークンのローテーションを有効にしないでください。 Portalはこの機能に対応していません。
- 複数のPortalで1つのアプリケーションを共有しないでください。 Portalごとに専用のアプリケーションが必要です。
- リフレッシュトークンの無操作有効期間を1時間未満に設定しないでください。 Portalのセッションは、無操作状態が1時間続くと終了します。リフレッシュトークンの有効期間がこれより短いと、Portalがユーザーに再サインインを求める前にAPI呼び出しが失敗してしまいます。
- Portalで使用しないグラントタイプやスコープを追加しないでください。 たとえば、
client_credentialsグラントは有効にしないでください。 - PortalアプリケーションにManagement APIグラントを追加しないでください。 ユーザーを更新するFormには、別途マシンツーマシンアプリケーションを使用してください。
シナリオ別の設定
ユースケースによっては、ポータルアプリケーションに追加の設定が必要です。このセクションのシナリオを確認し、ユーザーがポータルにアクセスする方法に応じた設定を適用してください。ネイティブアプリケーション
ネイティブアプリケーションからポータルを開くには、URLで渡されるセッション転送トークンをポータルアプリケーションが受け入れられるようにする必要があります。ポータルアプリケーションに以下を追加してください。Organization コンテキスト
organization パラメーターを指定してポータルを開くには、ポータルアプリケーションで Organizations を許可しておく必要があります:
no_prompt になっています。この設定では、ビジネス向けの Portal を開く際に必ず organization を送信してください。詳しくは、組織の動作を定義するおよびPortal にアクセスするをご覧ください。
ユーザーを更新するForm
フローでユーザーを更新するFormは、Forms vault接続を介してManagement APIを呼び出します。この接続には専用のマシンツーマシンアプリケーションを作成し、update:usersやupdate:users_app_metadataなど、フローに必要なスコープだけを付与してください。詳しくは、Auth0 Vault接続を参照してください。
アプリケーションをPortalにリンクする
- Auth0 Dashboard
- Management API
- Auth0 Dashboard > Portalsに移動してCreate Portalを選択するか、既存のPortalを開きます。
- NameとSlugを入力し、アプリケーションを選択します。スラッグはポータルURLの一部として使用されます。
- Createを選択します。
有効な接続を確認する
ユーザーは、ポータルアプリケーションで有効になっている任意の接続を使ってPortalにサインインできます。Portalを共有する前に、ユーザーが必要とする接続が少なくとも1つ有効になっていることを確認してください。- Auth0 Dashboard > アプリケーションに移動し、ポータルアプリケーションを選択します。
- [接続]タブを選択します。
- ユーザーが必要とする接続をオンにします。有効な接続が1つもない場合、ユーザーはPortalにサインインできません。
[Enable Application Connections]テナント設定がオンの場合、クイックスタートで作成される接続を含め、テナントに現在あるすべての接続がポータルアプリケーションに割り当てられます。詳細については、「テナント設定」をお読みください。
設定を確認する
https://YOUR_DOMAIN/portals/{slug} を開き、テストユーザーでサインインします。次に、Universal Component を含むページを開きます。コンポーネントにエラーが表示される場合は、Universal Portals のトラブルシューティングを参照してください。
次のステップ
Universal Portalsのトラブルシューティング
APIエラー、サインインの問題、Organizationに関する問題を解決します。
Portalsへのアクセス
アプリケーションからPortalへユーザーを誘導します。