メインコンテンツへスキップ
My Organization API と埋め込み可能な UI コンポーネントは現在、すべてのお客様に早期アクセスで提供されています。この機能を使用することで、お客様は Okta’s Master Subscription Agreement に定められた該当する Free Trial 条項に同意したものとみなされます。Auth0 の製品リリース サイクルの詳細については、Product Release Stages を参照してください。お客様は、My Organization API と埋め込み可能な UI コンポーネントの利用が、お客様のセキュリティ ポリシーおよび適用法令 (エンドユーザーに付与するあらゆる権限を含む) に準拠していることを確保する責任を負います。
Auth0 My Organization API は、Auth0 テナント内でお客様のビジネス顧客が自身の組織を管理できるようにする、組織スコープの安全なインターフェースを提供します。この API は、埋め込み型の委任管理と API ファーストの統合を支える技術基盤です。

主要機能

現在、この API では次の項目を管理できます。
  • Auth0 組織 の詳細 (名前、ブランディング、表示名)
  • 組織固有の設定、所有権、関連付け
  • IDプロバイダー (IdP) SCIM のプロビジョニング
  • ドメインとホーム レルム ディスカバリー (HRD) の設定
My Organization API を使用すると、統合を技術的にきめ細かく制御できます。最短でデプロイするには、まず 埋め込み可能な UI コンポーネント、SDK、サンプルアプリケーションから始めることを強くお勧めします。埋め込み可能な UI コンポーネントとサンプルアプリケーションを使用すると、お客様やエンドユーザーにセルフサービスエクスペリエンスを提供するまでの時間と労力を大幅に削減できます。

My Organization API の設定

Auth0 Dashboard で My Organization API を有効化する

  1. Auth0 Dashboard > Applications > APIs に移動します。
  2. My Organization API のバナーを探します。
  3. Activate を選択します。
    Auth0 Dashboard>Authentication>APIs
  4. API が Applications > API の一覧に My Organization API として表示されます。
My Organization API を有効化すると、次のようになります。
  • Auth0 では、デフォルトですべてのクライアントアプリケーションに対してこの API が無効になります。
  • クライアントグラント または RBAC ポリシーを使用して、アプリケーションとロールにアクセスを付与する必要があります。
  • 顧客企業は、自社の組織の詳細を取得したり、自社の組織向けに IdP を設定したりできます。

既定の設定

Auth0 ドメインとカスタムドメイン My Organization API では、正規の Auth0 ドメインまたはカスタムドメインを使用できますが、次の内容を含むプロセス全体を通して、同じドメインを使用する必要があります。
  • アクセストークンをリクエストする
  • オーディエンスまたは aud の値を設定する
  • My Organization API のエンドポイントを呼び出す
Auth0 でカスタムドメインを使用する方法の詳細については、Custom Domains を参照してください。 アクセスポリシー デフォルトでは、My Organization API には次のアプリケーション API アクセスポリシーが適用されます。
  • ユーザーフローでは require_client_grant
  • マシン間フローでは deny-all
アプリケーションがユーザーに代わって My Organization API にアクセスするには、そのアプリケーションのクライアントグラントを作成し、アプリケーションがリクエストできる最大のスコープを定義します。あるいは、ユーザーアクセスフローを allow_all に変更することで、テナント内の任意のアプリケーションが任意のスコープをリクエストできるようにすることもできます。
My Organization API は機密性の高い情報や操作を扱うため、Auth0 はユーザーアクセスフローで allow_all を使用することを推奨していません。アプリケーションには本当に必要なアクセス権のみを付与し、潜在的なセキュリティリスクを最小限に抑えるために、最小権限の原則に従ってください。
最終的にアプリケーションに付与される権限は、アプリケーション API アクセスポリシーで許可されたスコープ、エンドユーザーに割り当てられたロールベースアクセス制御 (RBAC) の権限、およびユーザーの同意 (該当する場合) の共通部分によって決まります。 アプリケーション API アクセスポリシーと、それに関連付けられたクライアントグラントの管理方法の詳細については、Application Access to APIs: Client Grants を参照してください。 トークンの有効期間 My Organization API は、有効期間が 600 秒 (10 分) に固定されたアクセストークンを発行します。この短い有効期間は、テナントとそのリソースを保護するために意図的に設けられたセキュリティ対策です。
My Organization API は、セキュリティ上の理由から常にオプトイン方式です。API を無効にすると、再度有効にするまで、接続されているすべてのアプリケーションからアクセスできなくなります。

クライアントアプリケーションの属性を設定する

My Organization API で使用するために、Auth0 でアプリケーションを作成します。作成後、Auth0 Dashboard > Applications > APIs に移動し、アプリケーションで必要なスコープを含めて My Organization API を認可します。 アプリケーションでは my_organization_configuration オブジェクトを指定する必要があります。指定しない場合、My Organization API はエラーを返してリクエストを拒否します。my_organization_configuration オブジェクトでは、次のプロパティを使用できます。
プロパティ説明
connection_profile_id接続プロファイル ID. My Organization API の使用時にアプリケーションで利用される 接続プロファイル の ID です。指定しない場合、接続プロファイル が必要な My Organization API の機能は動作しません。この ID は、同じテナント内の有効な 接続プロファイル を参照している必要があります。
user_attribute_profile_idUser Attribute Profile ID。My Organization API の使用時にアプリケーションで利用される ユーザー属性プロファイル の ID です。指定しない場合、ユーザー属性プロファイルが必要な My Organization API の機能は動作しません。この ID は、同じテナント内の有効なユーザー属性プロファイルを参照している必要があります。
allowed_strategies文字列の配列。 各文字列は一意で、サポートされているストラテジーを表します。サポートされているストラテジー (enum の値) は次のとおりです: pingfederate, ad, adfs, waad, google-apps, okta, oidc, samlp
connection_deletion_behaviorEnum (allow、allow_if_empty) 。 このアプリケーションから My Organization API 経由でエンドユーザーが接続の削除を試みた際に、My Organization API がどのように動作するかを示します。enum の値と説明は次のとおりです:

1. allow: ユーザーが適切なスコープを持っている場合、接続を削除できます。その結果、その接続に関連するすべてのユーザーも削除されます。

2.allow_if_empty: ユーザーが適切なスコープを持っている場合でも、接続内にユーザーが存在しない場合にのみ接続を削除できます。ユーザーが存在する場合、My Organization API はエラーを返し、削除は実行されません。

クライアントアプリケーションの属性を設定する

My Organization API に必要な属性を設定するには、次の手順を実行します。
  1. Dashboard > Applications > APIs に移動し、My Organization API を選択します。
  2. Application Access タブを選択します。
  3. 設定するアプリケーションを選択し、Edit を選択します。
  4. 次の設定を行います。
    A. 任意。接続プロファイル を設定します。
    1. 既存の 接続プロファイル を選択するか、新しく作成します。新しい 接続プロファイル を作成する場合:
      a. 名前を追加します。
      b. マッピングを確認し、新しい接続の属性に目的の設定が反映されていることを確認します。
    B. 任意。ユーザー属性プロファイルを設定します。
    1. 名前を追加します。
    2. マッピングを確認し、プロファイル属性が希望する Auth0 の属性にマップされていることを確認します。
    C. サポート対象の IDプロバイダー を設定します。
    1. 1 つ以上の IDプロバイダー を有効にします。顧客管理者は、有効化されたプロバイダーの一覧から希望するオプションを選択できます。
    D. Connection Deletion Behavior を Allow または Allow if Empty に設定します。
    1. Allow: ユーザーが適切なスコープを持っている場合、接続を削除できます。この操作により、その接続に由来するすべてのユーザーが削除されます。
    2. Allow if Empty: ユーザーが適切なスコープを持っている場合、接続内にユーザーが存在しないときにのみ接続を削除できます。ユーザーが存在する場合、My Organization API はエラーを返し、削除は実行されません。
    E. User Access Authorization を Unauthorized、Authorized、または All に設定します。
    1. Unauthorized。権限は許可されません。
    2. Authorized。必要な権限を選択します。
    3. All。現在および今後追加されるすべての権限が含まれます。
    F. Client Credential Access Authorization を Unauthorized、Authorized、または All に設定します。
    1. Unauthorized。権限は許可されません。
    2. Authorized。必要な権限を選択します。
    3. All。現在および今後追加されるすべての権限が含まれます。
  5. Save を選択します。

アクセストークンを生成する

My Organization API は、サポートされている OAuth 2.0 フロー のいずれかで取得した、ユーザーに紐づくアクセストークンでのみ呼び出せます。
My Organization API に機密性の高い操作を許可する場合は、多要素認証 (MFA) によって追加のセキュリティポリシーを適用するため、ステップアップ認証 の使用を強く推奨します。

Authorization Code Flow の例

を使用する機密Webアプリケーションでは、Authorization Code Flow を使用します。
curl --request POST \
--url 'https://YOUR_DOMAIN/oauth/token' \
--header 'content-type: application/x-www-form-urlencoded' \
--data 'grant_type=authorization_code' \
--data 'client_id=YOUR_CLIENT_ID' \
--data 'client_secret=YOUR_CLIENT_SECRET' \
--data 'code=AUTH_CODE' \
--data 'redirect_uri=https://yourapp/callback' \
--data 'audience=https://YOUR_DOMAIN/my-org/'
レスポンス例
{
  "access_token": "eyJz93a...k4laUWw",
  "token_type": "Bearer",
  "expires_in": 600,
  "scope": "read:my_org:details update:my_org:identity_providers"
}

PKCE を使用する認可コードフローの例

クライアントシークレットを持たないパブリックアプリケーション、シングルページアプリケーション、モバイルまたはネイティブアプリケーション、および CLI ツールでは、PKCE を使用する認可コードフロー を使用します。
curl --request POST \
--url 'https://YOUR_DOMAIN/oauth/token' \
--header 'content-type: application/x-www-form-urlencoded' \
--data 'grant_type=authorization_code' \
--data 'client_id=YOUR_CLIENT_ID' \
--data 'code=AUTH_CODE' \
--data 'code_verifier=CODE_VERIFIER' \
--data 'redirect_uri=https://yourapp/callback' \
--data 'audience=https://YOUR_DOMAIN/my-org/'

対象者

My Organization API のオーディエンスおよびベース URL は https://{yourDomain}/my-org/ です。トークンには、オーディエンスとして https://YOUR_DOMAIN/my-org/ を含める必要があります。他の API (/me/api/v2/ など) 用のトークンは使用できません。

Scopes

スコープ説明
read:my_org:configurationクライアントの組織設定を参照する
read:my_org:detailsクライアントの組織の詳細情報を参照する
update:my_org:detailsクライアントの組織の詳細情報を更新する
create:my_org:identity_providers組織のIDプロバイダーを作成する
read:my_org:identity_providers組織のIDプロバイダーを参照する
update:my_org:identity_providers組織のIDプロバイダーを更新する
delete:my_org:identity_providers組織のIDプロバイダーを削除する
update:my_org:identity_providers_detach組織からIDプロバイダーの関連付けを解除する
create:my_org:identity_providers_domainsIDプロバイダーに組織ドメインを関連付ける
delete:my_org:identity_providers_domainsIDプロバイダーから組織ドメインの関連付けを削除する
read:my_org:identity_providers_scim_tokensこのIDプロバイダーのProvisioning SCIMトークンを一覧表示する
create:my_org:identity_providers_scim_tokensこのIDプロバイダーのProvisioning SCIMトークンを作成する
delete:my_org:identity_providers_scim_tokensIDプロバイダーのProvisioning SCIMトークン設定を削除する
create:my_org:identity_providers_provisioningIDプロバイダーのProvisioning設定を作成する
read:my_org:identity_providers_provisioningIDプロバイダーのProvisioning設定を参照する
update:my_org:identity_providers_provisioningIDプロバイダーのProvisioning設定を更新する
delete:my_org:identity_providers_provisioningIDプロバイダーのProvisioning設定を削除する
read:my_org:domains組織のドメインを参照する
delete:my_org:domains組織のドメインを削除する
create:my_org:domains組織のドメインを作成する
update:my_org:domains組織のドメインを更新する

エンドポイント リファレンス

My Organization API は、構成、組織の詳細、IDプロバイダー、ドメイン、プロビジョニング構成、SCIM トークンに関するエンドポイントをサポートしています。スキーマやエラーコードなどを含むエンドポイントの完全なリファレンスについては、API Explorer を参照してください。

SDK リファレンス

この API は、TypeScript、Java、.NET、Go、Python 向けの SDK として提供されています。各 SDK 実装の詳細や、SDK の活用方法の例については、SDK documentation を参照してください。

ユーザープロフィール

My Organization API は、サードパーティの顧客が作成する設定の構造、制約、ルールを定義するために、接続プロファイルユーザー属性プロファイル を利用します。

接続プロファイル (CP)

接続プロファイルを使用すると、サードパーティによって作成される場合に、Auth0 開発者は Auth0 接続のプライベート設定をどのように構成するかを指定できます。接続プロファイルの仕組み、属性マッピングとオーバーライド、例、設定方法の詳細については、Connection Profiles を参照してください。

ユーザー属性プロファイル (UAP)

ユーザー属性プロファイル (UAP) は、SCIM、SAML、OIDC などのプロトコル全体で、ユーザー属性を一貫した方法で定義、管理、マッピングできるようにします。UAP の仕組み、属性マッピングとオーバーライド、例、設定方法の詳細については、ユーザー属性プロファイル を参照してください。

レート制限

レート制限は、サービスティアに応じて適用されます。
ティア読み取り (RPS)書き込み (RPS)
Free42
Public Self-Service84
Public Enterprise4020
Private Basic4020
Private Performance16080

組織ごとのレート制限

サービスティアのレート制限に加えて、My Organization API では組織ごとのレート制限も適用されます。これらの制限は、リソースを公平に割り当て、特定の組織がテナント全体のパフォーマンスに影響を及ぼさないようにするために設けられています。こうした上限を設けることで、「ノイジーネイバー」問題を軽減し、ある組織でアクティビティが急増しても、共有リソースが過度に消費されたり、同じ環境内の他の組織に影響が及んだりしないようにしています。各組織には、読み取り操作と書き込み操作それぞれについて、1 秒あたりのリクエスト数 (RPS) が個別に割り当てられます。
Tier組織ごとの読み取り (RPS)組織ごとの書き込み (RPS)
Free42
Public Self-Service42
Public Enterprise84
Private Basic84
Private Performance168

クロスオリジンリクエスト

Auth0テナントとは異なるドメインで実行されているブラウザーベースのアプリケーション (Single Page Application など) から My Organization API を直接呼び出そうとすると、Cross-Origin Resource Sharing (CORS) と呼ばれるブラウザーのセキュリティポリシーの影響を受けます。既定では、ブラウザーはこのようなクロスオリジンリクエストをブロックします。 アプリケーションから API に正常にリクエストを送信できるようにするには、アプリケーションのドメイン (「オリジン」) をクライアントの設定に追加する必要があります。
  1. Auth0 Dashboard > Applications に移動します。対象のアプリケーションを選択します。
  2. Cross-Origin Authentication で、Allow Cross-Origin Authentication をオンにします。
  3. Allowed Origins (CORS) を見つけて、アプリケーションのオリジン URL を入力します。
  4. Save を選択します。
アプリケーションで CORS を使用する必要がない場合は、Allow Cross-Origin Authentication がオフになっていることを確認してください。このリストにアプリケーションの URL を追加すると、Auth0 はそのオリジンからのリクエストを信頼し、クライアントサイドアプリケーションが API にアクセスできるようになります。

ログイベント

きめ細かな監査とモニタリングを実現するため、My Organization API はこの API 固有のログイベントセットを生成します。テナントでは引き続き標準のシステムログが出力されますが、以下の表は、特に My Organization API のアクティビティによって発生するイベントタイプの完全な一覧を示しています。 これらのイベントコードを使用すると、API によって管理されるすべてのリソース、具体的には設定、組織の詳細、IdP、ドメインにわたるアクティビティを追跡できます。ログイベントスキーマの詳細については、GitHub リポジトリを参照してください。
Event CodeEventEvent Description
my_organization_api_config_failedMy Organization API Config FailedMy Organization API サービスの設定リソースに対する API 呼び出しに失敗しました
my_organization_api_org_details_succeededMy Organization API Org Details SucceededMy Organization API サービスの組織の詳細リソースに対する API 呼び出しに成功しました
my_organization_api_org_details_failedMy Organization API Org Details FailedMy Organization API サービスの組織の詳細リソースに対する API 呼び出しに失敗しました
my_organization_api_idp_succeededMy Organization API Identity Provider SucceededMy Organization API サービスのIDプロバイダー リソースに対する API 呼び出しに成功しました
my_organization_api_idp_failedMy Organization API Identity Provider FailedMy Organization API サービスのIDプロバイダー リソースに対する API 呼び出しに失敗しました
my_organization_api_domain_succeededMy Organization API Domain SucceededMy Organization API サービスのドメイン リソースに対する API 呼び出しに成功しました
my_organization_api_domain_failedMy Organization API Domain FailedMy Organization API サービスのドメイン リソースに対する API 呼び出しに失敗しました

組織接続の所有権

この API では、テナント管理者が管理する接続と、組織が自ら管理する接続を区別するために、所有権モデルが導入されています。これは organization_access_level プロパティで制御されます。 主要なプロパティ: organization_access_level
Enum ValueDescription
noneテナント管理者によって割り当てられた関連付けです。この接続は My Organization API では表示も編集もできません。
readonlyテナント管理者によって割り当てられた関連付けです。表示はできますが、My Organization API では編集できません。
limitedテナント管理者によって割り当てられた関連付けです。My Organization API では、限定された情報の表示と変更が許可されます。具体的には、show_as_button 属性と is_enabled 属性です。
fullテナント管理者によって割り当てられた関連付けです。My Organization API の利用者は、追加の制限なしに、組織固有の接続属性、具体的には show_as_buttonis_enabled、options、display_namedomains の各属性を変更できます。
接続の Management API エンドポイント: /connections エンドポイントを呼び出すときは、/enabled_connections エンドポイントと同じスコープを使用します。
  • create:organization_connections
  • read:organization_connections
  • delete:organization_connections
  • update:organization_connections
追加のスキーマ属性を確認してください。
PropertyDescription
is_enabledBoolean。組織に対して接続を有効または無効にします。接続を無効にすると、接続自体は無効のまま、接続オブジェクトの値を保持できます。
organization_access_levelEnum (null, none, readonly, limited, full)。My Organization API の使用時に、ユーザーが持つアクセスの種類を決定します。1. null 2. none - テナント管理者によって割り当てられた関連付けです。この接続は My Organization API では表示も編集もできません。3. readonly - テナント管理者によって割り当てられた関連付けです。この接続は表示できますが、My Organization API では編集できません。4. limited - テナント管理者によって割り当てられた関連付けです。My Organization API では、限定された情報の表示と変更が許可されます。5. full - テナント管理者によって割り当てられた関連付けです。My Organization API の利用者は、My Organization API の使用時に、この接続を追加の制限なく変更できます。注: organization_access_level の値にかかわらず、My Organization API による変更には常に 接続プロファイル によって適用される制限が適用されます。
organization_connection_nameString。接続の作成時に指定した名前を格納します。このフィールドは、接続プロファイル の connection_name_prefix_template を評価して My Organization API が算出します。このフィールドは Management API でのみ表示および変更できます。
注意:
  • これらのエンドポイントは、省略可能なクエリパラメーター is_enabled=true/false を受け付けます。指定した場合は、指定された is_enabled 値を持つ接続のみが表示されます。
  • organization_access_level は Management API でのみ変更できます。
  • name 属性が設定されていない場合は、organization_access_levelnone から他の値に変更する前に、Management API で設定する必要があります。

Auth0 Universal Components

API ファーストの統合ではなく、まずは埋め込み可能な UI コンポーネントである Auth0 Universal Components の利用を強くお勧めします。これらのリソースを利用することで、開発時間を大幅に短縮し、顧客にセルフサービス体験を迅速に提供できます。