問題タブ [clientcredential]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1098 参照

identityserver4 - ID サーバー 4 とクライアント資格情報付与タイプを使用したロールベースのアクセス

Identity Server 4 を使い始めたばかりです。

Client Credentials 付与タイプを使用して API を保護しようとしています。

IS4 内に API をセットアップしています。

次のクライアント設定もあります。

API 内に保護したいコントローラーがあります。

次に、次のようにトークン リクエストを作成するとします。

これにより、API を呼び出してリソースにアクセスできるようになります。完全!

しかし、コントローラーを役割で保護したい、例えば

だから私の2つの質問は次のとおりです。

1: クライアント資格情報を使用してロールベースの承認を設定するにはどうすればよいですか?

2: クライアント資格情報はユーザーにリンクされていないため、記録の変更の監査証跡を保持するにはどうすればよいですか (たとえば、サプライヤー X が userId 5 によって更新されたなど)。

ありがとう

0 投票する
1 に答える
754 参照

azure-ad-b2c - パスワードの変更 Azure AD B2C

Azure B2C ユーザーを管理するための Azure Functions アプリを作成できました。client_credentials フローを使用して、新しいユーザーを作成し、プロファイルを問題なく更新できます。ただし、ボディ付きの PATCH リクエストを使用してパスワードを変更すると、次のようになります。

次のエラーが表示されます。

これについて調査したところ、パスワードの更新には委任されたアクセス許可「Directory.AccessAsUser.All」が必要であることがわかりました。フロント エンド アプリケーションから、B2CLogin フローを使用してサインインしているため、アクセス トークンは Graph API と互換性がありません。また、「Directory.AccessAsUser.All」は、B2C アプリケーションのアプリケーション レベルには存在しません。したがって、client_credentials フローでパッチ リクエストを使用することもできません。いくつかの提案によると、「会社の管理者」ロールを割り当てることにより、Azure AD PowerShell でプロセスを実行できます。しかし、Azure 関数を使用してパスワードをリセットする解決策が見つかりませんでした。私は Azure サービスに比較的慣れていないため、段階的な解決策 (存在する場合) は非常に役立ちます。