Node.js Web アプリケーションで API を呼び出すための外部テナントを準備する
適用対象: 従業員テナント 外部テナント (詳細情報)
この記事では、認可のために外部テナントを準備します。 この記事は、4 部構成のガイドの第 1 部です。
前提条件
チュートリアル: Node.js Web アプリのチュートリアルでユーザーをサインインできるように外部テナントを準備するための手順を完了します。 このチュートリアルの完了後、顧客のテナントにアプリを登録すると、ユーザーをサインインする Web アプリができます。 この Web アプリをクライアント アプリケーションと呼びます。 このアプリケーションを拡張して、保護された Web API を呼び出します。
チュートリアル: 外部テナントに登録されている ASP.NET Web API をセキュリティで保護するための手順を完了します。 このチュートリアルを完了したら、顧客のテナントに Web API を登録します。これにより、API のアクセス許可が公開され、アプリケーション ロールが発行されます。 セキュリティで保護された Web API もあります。 この Web API は、クライアント Web アプリから呼び出します。
idtyp トークン クレームを構成する [省略可能]
オプションの idtyp 要求を使用すると、Web API がトークンがアプリ トークンなのかアプリ + ユーザー トークンなのかを判別しやすくなります。 scp および roles 要求の組み合わせは同じ目的に使用できますが、idtyp 要求の使用は、アプリ トークンとアプリ + ユーザー トークンを区別する最も簡単な方法です。 たとえば、トークンがアプリ専用トークンの場合、この要求の値は app です。
アクセス トークンに idtyp 要求を追加するには、「省略可能な要求の構成」の記事にある手順を使用します。
- [トークンの種類] で、[アクセス] を選択します。
- 省略可能な要求の一覧から [idtyp] を選択します。
Web アプリに API のアクセス許可を付与する
前提条件から、顧客のテナントにクライアント アプリを登録しました。 また、顧客に Web API アプリを登録しました。 次に、クライアント アプリに API アクセス許可を付与する必要があります。
[アプリの登録] ページで、作成したアプリケーション ("ciam-client-app" など) を選択して、その [概要] ページを開きます。
[管理] の下にある [API のアクセス許可] を選択します。
[構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。
[所属する組織で使用している API] タブを選択します。
API の一覧で、API (ciam-ToDoList-api など) を選択します。
[委任されたアクセス許可] オプションを選択します。
アクセス許可の一覧で [ToDoList.Read, ToDoList.ReadWrite] を選択します (必要に応じて検索ボックスを使用します)。
[アクセス許可の追加] ボタンを選択します
この時点で、アクセス許可が正しく割り当てられます。 ただし、このテナントは顧客のテナントであるため、コンシューマー ユーザー自身がこれらのアクセス許可に同意することはできません。 これに対処するには、管理者がテナント内のすべてのユーザーに代わってこれらのアクセス許可に同意する必要があります。
[<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
[最新の情報に更新] を選択し、両方のアクセス許可の [状態] に "<テナント名> に付与されました" と表示されていることを確認します。
[Configured permissions] (構成されたアクセス許可) の一覧でToDoList.Read と ToDoList.ReadWrite のアクセス許可を一度に 1 つずつ選択し、後で使用するためにアクセス許可の完全な URI をコピーします。 完全なアクセス許可 URI は、
api://{clientId}/{ToDoList.Read}
またはapi://{clientId}/{ToDoList.ReadWrite}
のようになります。
次のステップ
次に、Web アプリケーションと API を準備する方法について説明します。