2017-06-12 4 views
0

Microsoft Graph APIにはB2C ADユーザーを管理する機能がないため、ドキュメントのいずれかから特別なアプリケーションを作成する必要があるADALを使用するように要求されていますAzure AD B2Cテナントxamarin.iosアプリケーションからのAPIアクセスを提供するアプリケーションキーを作成しました。 AcquireTokenAsyncで例外アクセスAzure AD B2Cユーザー管理のためにADALライブラリを使用

AuthenticationContext authContext = new AuthenticationContext(authority); 
      credential = new ClientCredential(clientId, GraphClientSecret); 
      authResult = await authContext.AcquireTokenAsync(graphResourceUri, credential); 

は私が資格情報を削除するには、その呼び出しを変更した場合、私はちょうどログイン画面を取得し、我々は例外に

AcquireTokenHandlerBase.cs: System.NullReferenceException: Object reference not set to an instance of an object at Microsoft.IdentityModel.Clients.ActiveDirectory.BrokerHelper.get_CanInvokeBroker() [0x0000c] in <786d1e888b334ad993ac80d2bc3b6e92>:0 
    at Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenHandlerBase+<RunAsync>d__55.MoveNext() [0x00389] in <97581c6894a642ef95d008cded8ad4ac>:0 

を取得している呼び出します。使用

パッケージ:

サンプルは、任意の助けをいただければ幸いですSample from Docs

から取られました。

答えて

2

ネイティブクライアントアプリケーション(Xamarin/iOSアプリなど)からクライアントクレデンシャルを使用してグラフAPIを呼び出さないでください。 これは巨大なセキュリティホールです。クライアントアプリケーションは本質的に安全ではなく、誰でもコードを反映させて、お客様のAzure AD B2Cテナントのユーザーを作成/更新/削除するために使用できるclient_idとclient_secretを保持することができます。

ネイティブクライアントアプリケーションは、Graph APIを呼び出すWeb APIを呼び出す必要があります。このWeb API(link to sample)は、ユーザー管理操作の対象とする認可ロジックを持つ、作成するAPIです。

Azure AD B2Cでのユーザー管理がMicrosoft GraphとMSALを介してサポートされると、このAPIは不要になり、ネイティブクライアントアプリケーションの会話に委任された権限(クライアントの資格情報を使用するアプリケーション権限) Microsoft Graphに直接アクセスできます。その間に、上のガイダンスに従って独自のWeb APIを立ち上げなければなりません。

+0

ありがとうございます。 – Jeeva

関連する問題