2016-01-25 11 views
6

Node.js web uygulamasındaki kullanıcıları kimlik doğrulaması yapmak için Azure Active Directory'yi kullanmaya çalışıyorum, şu ana kadar şanssız.Herkes, bir Node.js web uygulaması için kullanıcıların kimliğini doğrulamak için Azure AD'yi başarıyla kullandı mı?

Dokümantasyon oldukça zayıf olduğundan, herhangi birinin gerçekten bunu gerçekleştirip gerçekleştirmediğini merak ediyorum. Genellikle örnek kod vardır, ancak gerekli parametrelerin ne olduğu ve ne olması gerektiğine dair hiçbir gösterge yoktur.

Pasaport Azure reklamını (Microsoft'tan geldiğini düşünüyorum) ve passport.azure-ad-oauth2'yi (Auth0 (?)) Denedim. Pasaport-azure-reklam için, BearerStrategy'i ve ayrıca OIDCStrategy'yi şanssız olarak denedim.

BearerStrategy için İstemcimi ve aynı uygulamayı tanımlayan kaynağı hakkında bazı şifreli mesajlar alıyorum, ancak bunların ne olması gerektiğini anlatan hiçbir belge olmadığından, bir kayıp yaşıyorum.

OIDCStrategy için, kimlik doğrulaması için Microsoft'a yeniden yönlendirildim, ancak "Hata: ID Token yanıtta mevcut değil" hatasını alıyorum. Sanırım isteğim her ne sebeple olursa olsun bana bir işaret vermek için yeterince doğru değil, ama hiçbir belge olmadığı için ... (fikri anlıyorsun).

Her neyse, bir kişi gerçekten başarılı bir şekilde başardı ve nasıl elde edildiğine dair bazı göstergeleri paylaşabiliyorsa, bu harika olurdu.

Çok teşekkürler.

cevap

0

Microsoft, Azure xplat kimlik bilgilerini doğrulamak ve yazmak için Node.js aracını kullanır.

Kodlarına bakın, nasıl yaptıklarını anlamanıza yardımcı olur!

6

Aşağıda, Azure AD'yi Microsoft tarafından GitHub'da sağlanan bir NodeJS web uygulamasına https://github.com/Azure-Samples/active-directory-node-webapp-openidconnect numaralı telefondan entegre etme ile ilgili bir kod örneği verilmiştir.

Örnek çalışmasını sağlamak için, Azure AD'nizle ilgili örnek kodda birkaç ayar yapılandırmanız gerekir.

biz uygulamanın kök dizininde config.js dosyasında gösterildiği aşağıdaki gibi içerikleri bulabilirsiniz:

exports.creds = { 
    returnURL: 'http://localhost:3000/auth/openid/return', 
    identityMetadata: 'https://login.microsoftonline.com/common/.well-known/openid-configuration', // For using Microsoft you should never need to change this. 
    clientID: '<your app id>', 
    clientSecret: '<your secret>', // if you are doing code or id_token code 
    skipUserProfile: true, // for AzureAD should be set to true. 
    responseType: 'id_token code', // for login only flows use id_token. For accessing resources use `id_token code` 
    responseMode: 'query', // For login only flows we should have token passed back to us in a POST 
    //scope: ['email', 'profile'] // additional scopes you may wish to pass 
}; 

şimdi size Azure AD başvuru sayfasına portal, başlık Azure giriş yapmanız gerekecek yönetmek. AD'yi yapılandırmak için CONFIGURE sekmesini tıklayın. bölümünde çoklu oturum açma altında REPLY URL forma

  • Girdi config.js yılında returnURL: enter image description here

  • config.js yılında identityMetadata mülkiyet halinde AD uygulamasının Azure AD uç noktasını doldurun. Koddaki yorumun dediği gibi, Azure AD'niz Microsoft gibi bir etki alanındaysa: enter image description here Sonra ayarı değiştirmeniz gerekmez.Aksi takdirde, AD kimliğine config.js yılında son nokta içinde common değiştirmeniz gerekiyor, sen kimliğini bulmak için alt nav de GÖRÜNÜM uç nokta tıklayabilirsiniz: enter image description here

  • yapılandırmak config.js içinde clientID ve clientSecret. Bunların hepsini, AD uygulamanızın CONFIGRE sayfasında bulabilirsiniz: enter image description here Anahtar hakkında, yeni bir tane oluşturmak için bir tuşun süresini seçmek için açılır menüyü seçebilirsiniz, alt navlu kaydet düğmesine tıklayın, Anahtar verileri ilk oluşturduğunuzda görebilirsiniz.

Bu adımları tamamladıktan sonra örnek projeyi deneyebilirsiniz. Bana bu (No Kod çözeltisi) için

+0

Cevabınız için teşekkür ederiz. Bunu denedim ama işe yaramadı. Orjinal microsoft kodu https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration olarak tanımadım ama bunu https://login.microsoftonline.com/common/ olarak değiştirdim. örneğinizdeki gibi iyi bilinen/açık yapılandırma, biraz daha şansım oldu ... – Darren

+0

Endpoint'i değiştirdikten sonra sorunu hala yaşıyor musunuz? https://login.microsoftonline.com/common/.well açık/açık yapılandırma? –

+0

Yeni (eski?) Son nokta işe yarıyor gibi görünüyor. Bununla ilgili biraz rahatsızlık duyuyorum, çünkü örnek daha yeni bir son nokta gibi görünecek ve neden çalışmayan örnekte bir son nokta kullanacaktı? Yanıtlarınız için çok teşekkürler ... – Darren

1

new Azure Portal çalıştı: AD içinde abonelik

  • Kayıt yeni bir uygulama bir AD ekleyin

    • konak benim node.js Sunucu
    • "https://YourNodeJS.azurewebsites.net/.auth/login/aad/callback" olarak yanıtlayın URL olarak
    • AppHizmetlerinizde, Node.js Sunucunuzu seçin
    • Ayarlar'da
    • etkinleştirme AAD
    • Kullanım Gelişmiş Mod AD yukarıda kayıtlı başvuru İstemciKimliği (GUID) girin ABİ
    • Kimlik Doğrulama/Yetkilendirme gitmek
    • issuerURL bu bağlantıyı girerken: https://sts.windows.net/YourADGuid/ (GUıD'I görebilirsiniz Yukarıdaki AD'ye kayıtlı uygulamanıza geri bakarsanız "Bitiş Noktaları" içinde)
  • İlgili konular