2016-05-03 6 views
1

私はAzure認証を取得しており、[Authorize]属性like in the documentationを使用してコントローラへのアクセスを制限できます。これまで私はそれを愛する。Azureモバイルアプリケーションサービス - Azure ADを使用するC#バックエンドを使用したCordova。役割をチェックする方法は?

私は昇格した特典を持つユーザーを必要としますが、通常はADセキュリティグループを使用します。 「大丈夫です」と私は思っていました。「[Authorize(Roles = "AD Security Group"]を使用します」と私はアプリを開発することができます!

私は間違っていました。 2日後、私は周りに円を描きました。私は、ロール申し立てがAADによって提供されていないという結論に達しました。そのため、ClaimsPrincipalにはロールが含まれていないため、informatをauthorize属性に指定することはできません。

私はこれについて古い情報がたくさんあることを知っています(Azure Mobile Appはかなり新しくなりました)。そしてそれはかなり水を混乱させます。このための現在のソリューションは、AD Graph APIに問い合わせてロール情報を取得していますか?

または、おそらく、/.auth/meエンドポイントを呼び出して役割情報を取得するためのカスタム属性を記述しますか?

私はとても混乱しています!誰かが正しい方向に私を指してくれますか?

答えて

2

クレームにAADグループを取得するには、いくつかの作業が必要です。これについてはwrote a blogです。 Nodeには認可が実装されていますが、AAD側の構成は同じです。

Azure Mobile Apps Server SDKは、認定ロールに登録するという点では、現時点ではこれを行いません。あなたが属性を自分で作成している場合(私はそれは良いアイデアだと思うので、our GitHub repository上の問題を提出して自由に感じる)

、私は、特許請求の範囲を取得するためにGetAppServiceIdentityAsync<>()メソッドを使用したい - /.auth/を照会しません。私自身。

+0

こんにちは、アドリアン!私はあなたの名前をこのAzure Mobile Appのすべてのものに見ました。私は本当にあなたの返信に感謝します。まず、それは私にある方向性とより多くの情報を提供します。それはまた、私が実際にやっていることのほんのわずかなアイデアを実際に持っているかもしれないことを証明します! – markau

+0

特に、あなたの返信は、私が 'GetAppServiceIdentityAsync <>()'で持っていた問題を解決するのをより困難にしました。私は 'using System.Security.Principal'を追加して、IPrincipalで拡張メソッドを利用できるようにしなければなりませんでした。だからこれは大きな進歩です。私はドキュメントでこの効果についてのメモを寄稿したいと思います - 彼らはGitHub上にありますか?私は今それらを見つけることができません。 URLを教えてもらえますか? – markau

+0

azure/azure-mobile-apps-net-serverを使用する - 私たちはwikiにものを受け入れるべきです。 –