2017-10-16 5 views
0

私はAPIをAzure B2Cによってロックダウンしています。このAPIを使用するクライアントアプリケーションのすべてが正しく設定されています。私の質問は、APIに付随する統合テストに関するものです。 UIがログインするための認証をトリガするのはかなり明らかですが、UIをポップすることなく認証が必要なテストケースに対してトークンを要求するにはどうすればよいでしょうか?Microsoft.Identity.Clientと統合テストでUIなしでアクセストークンを取得する方法

今私はアクセストークン(UIをポップアップさせて)を取得し、それをテストプロジェクトで使用できるユーティリティが必要です。最終的にすべてのテストが失敗するように期限が切れます。これは理にかなっていますが、誰かがこのライブラリを使用してトークンを取得するプロセスを自動化する方法を考え出しているのであれば、UIをポップアップさせることなくテストケースを取得できますか?スクリーンスクレーパー?

+0

Webアプリのアクセス許可をウェブAPIに付与しましたか? –

+0

申し訳ありません...あなたが何を意味するのかよく分かりません。 https://github.com/Azure-Samples/active-directory-b2c-dotnet-desktopの記事で概説したのとまったく同じソリューションを実装しました。ユーザの介入なしにXUnit統合テストのためのアクセストークンの取得を自動化する方法を知っているなら、必要なことは何でもできます。 – Geekn

+0

私の不明なコメントに申し訳ありません。私はあなたがこの文書を参照したと思った:https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-access-tokens。 –

答えて

0

Resource Owner Password Grant Flowが欲しいと思われます。 B2Cはこれを正式にサポートしていませんが、Azure Active Directoryはこれをサポートしています。

これらを読む:B2Cは、単にAADのように振る舞っているシナリオ(ローカルアカウント)で、あなたはこのフローを使用することができることを Can I use "Resource Owner Password Grant" flow with Azure AD B2C

https://blogs.msdn.microsoft.com/wushuai/2016/09/25/resource-owner-password-credentials-grant-in-azure-ad-oauth/

注意を。しかし、FacebookやGoogleのような他の社会的アイデンティティプロバイダにとっては、この流れを使うことはできません。

私はアプリの外にアクセストークンを生成して貼り付けるというオリジナルの方法が好きです。あなたが持っているリフレッシュトークンを追加し、既存のリフレッシュトークンを使って新しいトークンを取得するコードを追加することをお勧めします。 thisのようなものです。

これが役立つかどうか教えてください。

+0

ああ...それは理にかなっており、社会的な勘定では流れがうまくいかないことも理解しています。 B2Cに移行する前に、aspnetコアIDを持つ通常のローカルアカウントを使用し、本質的にjsonトークンを取得するために同じことを行いました。クイックフィードバックを高く評価してください。乾杯! – Geekn

+0

私もその機能に投票しました。 )あなたがすでに数ヶ月前に仕事でそれを持っていたように見えます。 – Geekn

関連する問題