5

Bir uygulamamız var, Azure Management API uygulamasında yetki verilen haklara sahip Azure AD'ye kayıtlı olan 'Apple' adını verelim. Bu uygulama talep edildiğinde, azure kaynağı oluşturur. depolama hesabı otomatik olarak ve bu iyi çalışıyor.Uygulamalar arasında Azure AD kimlik doğrulaması

MVC uygulaması olan ve aynı AD kiracısına da kayıtlı başka bir uygulamam var. ikinci uygulama erişim kodu almak için aşağıdaki kodu kullanır:

var clientCredentials = new ClientCredential(ConfigurationManager.AppSettings["AD_ClientID"], ConfigurationManager.AppSettings["AD_Client_AccessKey"]); 
var authContext = new AuthenticationContext(string.Format(ConfigurationManager.AppSettings["AD_Tenant_Login_Url"], ConfigurationManager.AppSettings["AD_Tenant_Id"]));    
var result = authContext.AcquireTokenAsync(ConfigurationManager.AppSettings["AD_Resource"], clientCredentials); 
if (result == null) 
{ 
    throw new InvalidOperationException("Could not get the token"); 
} 
return result.Result; 

sonuç, farklı özelliklere sahip olan bir erişim belirtisidir. Şimdi ikinci uygulama, erişim belirtecini, yetkilendirme başlığında Apple uygulamasına geçtiği kaynak elma erişimi ile geri alır.

Authorization:bearer TokenString 

Apple uygulaması, denetleyiciye eklenen öznitelik Yetkisi kullanıyor. uygulama kodunu aşağıdaki ile oauth uygulama ile Owin ile yapılandırılmış

public void ConfigureAuth(IAppBuilder app) 
    { 
     app.UseWindowsAzureActiveDirectoryBearerAuthentication(
      new WindowsAzureActiveDirectoryBearerAuthenticationOptions 
      { 
       Tenant = ConfigurationManager.AppSettings["ida:Tenant"], 
       TokenValidationParameters = new TokenValidationParameters 
       { 

        ValidAudience = ConfigurationManager.AppSettings["ida:Audience"] 
       }, 
      }); 
    } 

erişim belirteci kendi AppId ve Gizli anahtar kullanarak ikinci uygulamadan almak olduğunu unutmayınız; Diğer (Apple) uygulaması ise, jetonu doğrulamak için kendi AppId ve gizli anahtarını kullanır.

Bu kadar sorun APPLE uygulaması her zaman kodunu yukarıdaki için

+0

Hiçbir yanıt almadığımda etiketi değiştirmem gerekir mi? –

+0

Buradaki konuları [buradan] takip ediyorum (https://social.msdn.microsoft.com/Forums/azure/en-US/af1f1ddc-649b-4b35-9e16-ced582380e6c/azure-ad-authentication-between-applications ? forum = WindowsAzureAD), herhangi bir sorunuz varsa lütfen bana bildirin. –

+0

@Fei Xue, beni tekrar yakaladığınız için teşekkür ederim ... Cevabınıza cevap verdim ... –

cevap

0

yetki 401 döndürür olup, soru, cevap oldu, (jeton istek sırasında) Kaynak kimliği ve Kitle Kimliği (ikinci belirteci doğrulanması sırasında uygulama) eşleşmiyordu. Bunların aynı tutulması sorunu çözdü.

Sonra ben here

I (önizleme sürümünde hala) yeni Azure Portal ile çalışıyorsanız O görünüyor nitelendirdiler başka bir sorun, koştum, AD tokenJWT belirteçteki "Roles" alanı içermez. Uygulamaları yapılandırmak için Eski Portal'da aynı prosedürü izlerseniz, AD JWT belirtecinde "Roles" alanını ve senaryoyu beklendiği gibi yürütür.

En az önizleme özellikleri için Azure new portal kullanmaktan kaçınmalıyım!