4

この質問この MSDN の投稿を参照しましたが、問題を解決できませんでした。

以下のコードは、Web ブラウザーを使用して WAAD 認証を実行する方法を示しています。

AuthenticationContext auth = new AuthenticationContext("https://login.windows.net/" + myDomain);
AuthenticationResult result = auth.AcquireToken(resource, clientID, resourceAppIDURI);

これによりブラウザが開き、ユーザーは詳細を入力するように求められますが、問題なく機能します。

ただし、ユーザー名/パスワード/ドメインを独自に取得できるGUIクライアントがあります。そのため、GUI クライアントから詳細を収集し、WAAD サーバーに直接提供して、ユーザーを認証することを目的としています。

どうやってするか?

のオーバーロードを見るだけで、AcquireToken()いくつかの手がかりが得られました (これも間違っている可能性があります)。

AuthenticationResult AcquireToken (string resource, Credential credential);

AuthenticationResult AcquireToken (string authorizationCode, string redirectUri, ClientCredential credential);

class ClientCredentialしかし、 (のサブクラス)を作成する方法がわかりませんCredential。このクラスはnamespace Microsoft.WindowsAzure.ActiveDirectory.Authentication.
以下はそのコンストラクタです。

ClientCredential(string clientId, SecureString secureClientSecret);
ClientCredential(string clientId, string clientSecret);

オンラインで検索してもあまり答えが得られませんでしたが、このリンクを取得しました。しかし、やはりその部分はSecureString私にとって謎です。を使用してユーザー名/パスワード/ドメインをどのように通信できますSecureStringか?

4

2 に答える 2

4

古いバージョンの AAL はこれをサポートしていました。ただし、約 2 ~ 3 か月前に削除されました (およびそれを示すサンプル)。ユーザーの認証は、ブラウザの認証ウィンドウを介してのみ達成できるようになりました。

100% 確信があるわけではありませんが、動機は標準的で一貫性のあるログイン エクスペリエンス (エンド ユーザー向け) を作成することだと思います。Windows 8 アプリケーションを使用している場合、WebAuthenticationBroker がこれを処理し、ユーザーはすべての Windows 8 アプリケーションでこれを認識します。Web アプリケーションの場合は、AzureAD ログイン ページが表示され、認識できます。

于 2013-08-24T18:40:55.233 に答える