サードパーティアプリケーションを有効にする

テナントに対して、サードパーティのアプリケーションを有効にすることができます。2種類のアプリケーションの違いについては、「ファーストパーティとサードパーティのアプリケーション」を参照してください。

  1. Auth0でアプリケーションの所有者をサードパーティに変更します。

    デフォルトでは、Auth0に登録されたアプリケーションは、ファーストパーティアプリケーションになります。アプリケーションをサードパーティアプリケーションにしたい場合は、所有者を変更しなければなりません。

  2. Auth0でサードパーティアプリケーションに使用したい接続をドメインレベルに昇格させます。

    サードパーティアプリケーションは、ドメインレベル接続のフラグを持つ接続からのユーザーのみ認証できます。ドメインレベルの接続は、選択したファーストパーティアプリケーションに対して有効にした場合でも、すべてのサードパーティアプリケーションユーザーが認証に使用できます。

  3. アプリケーションのログインページを更新します。Lockユニバーサルログインページで使用する場合には、以下が必要です。

    1. Lockをバージョン11以降にアップグレードする

    2. Lockをインスタンス化する際に__useTenantInfo: config.isThirdPartyClientフラグを設定する

    3. プライベートクラウドのユーザーのみ: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?

/

もっと詳しく