2013-08-30 5 views
6

I installazione e MVC 4 applicazione e autenticazione aggiunta contro il nostro server Azure AD come descritto qui: http://msdn.microsoft.com/en-us/library/windowsazure/dn151790.aspxCome posso ottenere ruoli da AD con MVC Azure AD Authentication?

L'autenticazione funziona come previsto. Tuttavia, per impostazione predefinita non ricevo alcun ruolo. Dovrebbero essere creati diversi gruppi AD e vorrei utilizzarli per limitare l'applicazione tramite l'attributo [Autorizza] in MVC.

Non riesco davvero a trovare un buon posto per iniziare a capirlo. Qualcuno può darmi una traccia o indicarmi un buon tutorial?

Devo dire che non sono l'amministratore del nostro account di Azure, quindi devo essere in grado di dire al nostro amministratore cosa fare se è necessaria una configurazione su quel lato.

risposta

9

In primo luogo, i token restituiti da Azure AD non contengono attualmente richieste per ruoli o gruppi, pertanto è necessario recuperarli dall'API Graph. In secondo luogo, i ruoli in Azure AD restituiti dall'API Graph non sono necessariamente destinati all'utilizzo in un'app ISV/LoB e, in generale, è consigliabile utilizzare invece i gruppi di sicurezza per l'autorizzazione. Per eseguire l'autorizzazione, è necessario utilizzare le operazioni checkMemberGroups o getMemberGroups nell'API Graph, che sono transitive e valide per questo scopo.

Se verificate le seguenti risorse in ordine, penso che le vostre domande avranno una risposta. Imparerete come autenticare al grafico, lo chiamano, e configurare l'applicazione per utilizzare il risultato delle operazioni di gruppo da eseguire autorizzazione:

6

La risposta di Sean è un po 'obsoleta. Ora è possibile configurare Azure AD in modo che includa gruppi o ruoli all'interno del token JWT in modo che venga incluso in ClaimsPrincipal.Current.Claims in modo che l'attributo standard [Authorize(Roles = "yourRoleName")] funzioni.

Here è un post introduttivo. Che sostanzialmente dice che avete due opzioni:

  1. Utilizzare i gruppi sostengono - è necessario modificare groupMembershipClaims valore nel file manifest e successivamente in applicazione è possibile verificare la presenza di ClaimsPrincipal.Current.FindFirst("groups").Value vedere in che gruppo di utenti è (si ottiene solo gruppo id). Puoi scrivere il tuo attributo Authorize che usi questo.more info

  2. definire i ruoli per voi applicazione e quindi utilizzare il codice normale per il test se l'utente è in ruolo:

    [PrincipalPermission(SecurityAction.Demand, Role = “yourRoleName”)]

    [Authorize(Roles = “yourRoleName”)]

    if (ClaimsPrincipal.Current.IsInRole(“yourRoleName”)) { //do something }

    è necessario modificare i ruoli in te manifest di app. Ulteriori informazioni here e here. I valori necessari per essere impostato in manifesti sono descritti here

cosa davvero strana è che non è possibile assegnare più di un ruolo al gruppo dalla pagina web Azure. È necessario utilizzare l'azzurro graph api per questo.

Se non è possibile visualizzare la scheda Users and Groups nel portale di Azure, è probabile che sia necessario Azure AD Basic o Premium edition. Se stai lavorando sull'abbonamento azzurro gratuito puoi usare free Azure AD Premium trial per testare cose.

Problemi correlati