2017-08-21 17 views
2

私はAdrian Halls bookをフォローしてモバイルサービスAPIバックエンドを持つクロスプラットフォームアプリを作成しました。私はAndroid、iOS、Desktop(WPF)クライアントからバックエンドにアクセスするのに無担保のアクセス権を取得しました。私は、Authorize属性を使用してAPIにセキュリティを追加することに移ります。 MicrosoftAccount(以前のパスポート/ライブID)を使用してソーシャル認証を追加したいと考えています。Azure Mobile Service APIへのMicrosoftAccountアクセスのデスクトップクライアントフロー

Adrianが彼の本を書いて以来、Microsoft.Azure.Mobile.Clientと認証と認可の風景が移動したようです。本のサンプルはもはや構築されず、マイクロソフトのソーシャル認証とAAD認証は1つのAPIに組み込まれているようです。

私は最新の情報を探していましたが、古くなったインターネット上にたくさんのものがあるか、XamarinクライアントからのFacebookやGoogleの認証やAzure広告。

私は、デスクトップアプリケーション用に.NET 4.7とWPFを使用しています。私はMicrosoft.Azure.Mobile.Client V4.0.1も使用しています。

  1. デスクトップクライアントのユーザーを認証するにはMicrosoft.Identity.Clientを使用する必要があります。そして、

  2. 私が従う必要があるクライアントフローの例を教えてもらえれば、具体的にどのように私が新しいMobileServiceClient.LoginAsync()関数に渡す必要がある認可トークンを得ることができますか?識別プロバイダとトークンパラメータ?

+0

この問題は解決しましたか、さらに支援が必要ですか? –

+0

こんにちはブルース、私はこの問題を解決しましたありがとうございます。最後に、Microsoft.Azure.Mobileのソースコードを調べました。クライアントは、その後、認証フローに関連するさまざまなクラスの自分のデスクトップ版を書きました。私はまだそれを広範囲にテストするための変更をしていないが、それはFacebookのクライアントの流れでうまくいくように思われる。 – PhilDotC

答えて

1

ので、誰かが私は私がに渡す必要がある認証トークンを入手できますか、具体的方法を、私は従う必要があり、クライアントの流れの一例に私を指すことができる場合識別プロバイダとトークンパラメータを使用する新しいMobileServiceClient.LoginAsync()関数

ご要望に応じて、client-flow authenticationをMSAに使用します。私が知っていたように、MSA認証はsigning usersのLive SDKを使用します。

ライブSDKは廃止されているので、あなたはMSAにログインするためのOneDrive SDK for CSharpを活用することができ、あなたは、この目的を達成するための詳細な手順に従ってください可能性が:

enter image description here

  • その後、あなたは以下のコードに従うと、次のようにあなたのWPFアプリケーションに追加することができます。のためのOneDrive SDKの詳細については

    enter image description here

CSharp、hereとを参照できます。

UPDATE:

それは私のせいです。私は上記のコードが自動的にWebブラウザを開くことに言及しなかった。私のテストでは、インスタンスを構築するときに、returnUrlhttps://login.microsoftonline.com/common/oauth2/nativeclientに設定することができます。

+0

ブルースありがとうございます。デスクトップクライアントのコードが完成したので、Microsoftアカウント認証を実装するために答えを使用します。 – PhilDotC

+0

ご不明な点がございましたら、お気軽にお問い合わせください。私の努力があなたを助けることができれば、それを受け入れられる答えとして親切にマークしてください。 –

+0

私は上記の手順に従っており、デスクトップアプリケーションはMicrosoftアカウントを使用して正常に認証されるようになりました。私が現在持っている唯一の問題は、URLとコードを返してWebブラウザを開いて、AuthenticateUserAsync()の呼び出しを終了することです。この事態をどうやって止めるのですか? – PhilDotC

0

私は同様のボートにいました。ここに私の頭の上から要約があります。現在、認可のための2つのセキュリティライブラリ、ADALとMSALがあります。

ADAL これは最初に出てきたライブラリであり、B2Cのようなサービスはそれぞれこのライブラリを使用して別々に処理する必要があります。

MSAL すべてを統治する1つのセキュリティフレームワーク! https://github.com/Azure-Samples/active-directory-xamarin-native-v2 このライブラリーにはライブライセンスが付いていますが、技術的にはまだベータ版です。

モバイルアプリケーションを作成する最後の情報はMobile.azure.comに、this article on a V2 endpointに移動してください。

認可のためのアプリケーションを登録すると、「コンバージド」アプリケーションと「Live SDKアプリケーション」という2つのカテゴリがあります(https://apps.dev.microsoft.com/#/appList参照)。なぜこれらの名前を選択するのかはわかりません。重要な翻訳 - 収束されたアプリケーションはMSALのみで動作し、他のアプリケーションはADALでのみ動作します。アプリケーション/クライアントIDは正しいSDK、したがってエンドポイントと一致する必要があるため、認証を有効にするための長い道のりがあります。

私たちはMSALに問題があったので、今はADALに滞在することを選択しました。しかし、すべてのサービスが組み込まれるため、MSALは未来ですが、使用するにはより簡単なSDKでなければなりません。ここで

はADALまたはMSALを参照してくださいすべてが、私はいくつかのリンクまま、次のとおりです。

http://aka.ms/aadv2

https://azure.microsoft.com/develop/identity

https://docs.microsoft.com/en-ca/azure/active-directory/develop/active-directory-authentication-scenarios#native-application-to-web-api

https://github.com/AzureAD

https://github.com/AzureAD/microsoft-authentication-library-for-dotnet

これらのリンクは、約一ヶ月古いです - HTH

関連する問題