サードパーティアプリケーションを有効にする
テナントに対して、サードパーティのアプリケーションを有効にすることができます。2種類のアプリケーションの違いについては、「ファーストパーティとサードパーティのアプリケーション」を参照してください。
Auth0でアプリケーションの所有者をサードパーティに変更します。
デフォルトでは、Auth0に登録されたアプリケーションは、ファーストパーティアプリケーションになります。アプリケーションをサードパーティアプリケーションにしたい場合は、所有者を変更しなければなりません。
Auth0でサードパーティアプリケーションに使用したい接続をドメインレベルに昇格させます。
サードパーティアプリケーションは、ドメインレベル接続のフラグを持つ接続からのユーザーのみ認証できます。ドメインレベルの接続は、選択したファーストパーティアプリケーションに対して有効にした場合でも、すべてのサードパーティアプリケーションユーザーが認証に使用できます。
アプリケーションのログインページを更新します。Lockをユニバーサルログインページで使用する場合には、以下が必要です。
Lockをバージョン11以降にアップグレードする
Lockをインスタンス化する際に
__useTenantInfo: config.isThirdPartyClient
フラグを設定するプライベートクラウドのユーザーのみ:Lockをインスタンス化する際に
configurationBaseUrl
オプションをhttps://{config.auth0Domain}/
に設定する
アクセストークンのcurrent_user_*スコープ
ファーストパーティやサードパーティのアプリケーションがIDトークンを使ってManagement APIエンドポイントを呼び出すことはできません。その場合には、それぞれのエンドポイントに必要な以下のcurrent_user_*
スコープを使ってアクセストークンを取得します。
スコープ | エンドポイント |
---|---|
read:current_user |
ユーザーを一覧表示または検索する |
ユーザーを取得する | |
ユーザーMFA登録を取得する | |
update:current_user_metadata |
ユーザーを更新する |
ユーザーの多要素プロバイダーを削除する | |
create:current_user_device_credentials |
デバイスの公開鍵を作成する |
delete:current_user_device_credentials |
デバイスの資格情報を削除する |
update:current_user_identities |
ユーザーアカウントをリンクする |
ユーザーIDをリンク解除する |
スクリプトの例
<script src="https://cdn.auth0.com/js/lock/11.x.y/lock.min.js"></script>
...
<script>
// Decode utf8 characters properly
var config = JSON.parse(decodeURIComponent(escape(window.atob('@@config@@'))));
var connection = config.connection;
var prompt = config.prompt;
var languageDictionary;
var language;
if (config.dict && config.dict.signin && config.dict.signin.title) {
languageDictionary = { title: config.dict.signin.title };
} else if (typeof config.dict === 'string') {
language = config.dict;
}
var lock = new Auth0Lock(config.clientID, config.auth0Domain, {
auth: {
redirectUrl: config.callbackURL,
responseType: config.callbackOnLocationHash ? 'token' : 'code',
params: config.internalOptions
},
assetsUrl: config.assetsUrl,
allowedConnections: connection ? [connection] : null,
configurationBaseUrl: 'https://' + config.auth0Domain + '/', // for PSaaS only
rememberLastLogin: !prompt,
language: language,
languageDictionary: languageDictionary,
closable: false,
__useTenantInfo: config.isThirdPartyClient // required for all Tenants
});
lock.show();
</script>
Was this helpful?