Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure İşlevleri için Kimlik Doğrulama Olay Tetikleyicisi, Kimlik Doğrulama olayları için gelen Http isteklerine yönelik tüm arka uç işlemlerini (örneğin belirteç/json şeması doğrulaması) işler. Geliştiriciye çalışması için kesin olarak belirlenmiş, sürüme alınmış bir nesne modeli sağlar. Bu da geliştiricinin istek ve yanıt json yükleri hakkında önceden bilgi sahibi olması gerekmediği anlamına gelir.
Bu proje çerçevesi aşağıdaki özellikleri sağlar:
- API çağrısının güvenliğini sağlamak için belirteç doğrulama
- Nesne modeli, yazma ve IDE intellisense
- API isteği ve yanıt şemaları için gelen ve giden doğrulama
- Sürüm Oluşturma
- Ortak koda gerek yok.
Başlarken
npm paketini yükleme
npm install @azure/functions-authentication-events
Önkoşullar
- Azure işlev araçları
- Azure İşlev Çekirdek Araçları
- Visual Studio Code aşağıdaki uzantıları kullanıyorsanız:
İstemcinin Kimliğini Doğrulama
Azure AD kimlik doğrulama olayları hizmeti özel uzantınızı çağırdığında, ile bir AuthorizationBearer {token}üst bilgi gönderir. Bu belirteç, aşağıdakilerin bulunduğu hizmet kimlik doğrulamasını temsil eder:
- hedef kitle olarak da bilinen 'kaynak', API'nizi temsil etmek için kaydettiğiniz uygulamadır. Bu, belirteçteki
audtaleple temsil edilir. - 'client', Azure AD kimlik doğrulama olayları hizmetini temsil eden bir Microsoft uygulamasıdır. değeri
99045fe1-7639-4a75-9d4a-577b6ca3810fvardırappId. Bu, şunun tarafından temsil edilir:azpUygulamaaccessTokenAcceptedVersionözelliğiniz olarak ayarlandıysa2belirteçteki talep.appidKaynak uygulamanızınaccessTokenAcceptedVersionözelliği veyanullolarak ayarlandıysa1belirteçteki talep.
Belirteçle ilgilenmek için üç yaklaşım vardır. Aşağıda gösterildiği gibi uygulama ayarlarını kullanarak veya yerel ortamlarda local.settings.json dosyası aracılığıyla davranışı özelleştirebilirsiniz.
Azure İşlevleri Azure AD kimlik doğrulaması tümleştirmesi kullanarak belirteçleri doğrulama
İşlevinizi üretimde çalıştırırken, gelen belirteçleri doğrulamak için Azure İşlevleri Azure AD kimlik doğrulaması tümleştirmesini kullanmanız kesinlikle önerilir.
- İşlev Uygulamanızda "Kimlik Doğrulaması" sekmesine gidin
- "Kimlik sağlayıcısı ekle" seçeneğine tıklayın
- Kimlik sağlayıcısı olarak "Microsoft" seçeneğini belirleyin
- "Mevcut bir uygulama kaydının ayrıntılarını belirtin" seçeneğini belirleyin
Application IDAzure AD'de API'nizi temsil eden uygulamanın değerini girin
Veren ve izin verilen hedef kitle, uygulamanızın özelliğine accessTokenAcceptedVersion bağlıdır (uygulamanın "Bildiriminde" bulunabilir).
accessTokenAcceptedVersion Özellik : 6 olarak ayarlandıysa2. appId değerini Issuer URL to "https://login.microsoftonline.com/{tenantId}/v2.0" 7. Set an 'Allowed Audience' to the Application ID (ayarlayın')
accessTokenAcceptedVersion Özellik veya null: 6 olarak ayarlandıysa1. Özel bir etki alanı adı kullanıyorsanız identifierUri). It should be in the format ofapi://{azureFunctionAppName}.azurewebsites.net/{resourceApiAppId}orapi://{FunctionAppFullyQualifiedDomainName}/{resourceApiAppId}' ayarlayınIssuer URL to "https://sts.windows.net/{tenantId}/" 7. Set an 'Allowed Audience' to the Application ID URI (also known as.
Varsayılan olarak, Kimlik doğrulama olayı tetikleyicisi Azure İşlevi kimlik doğrulama tümleştirmesinin yapılandırıldığını doğrular ve belirteçteki istemcinin (belirteçteki veya appid talepleri aracılığıylaazp) olarak ayarlanıp ayarlandığını 99045fe1-7639-4a75-9d4a-577b6ca3810f denetler.
API'nizi Postman gibi kimlik doğrulama olayları hizmeti Azure AD olmayan başka bir istemcide test etmek istiyorsanız, isteğe bağlı bir uygulama ayarı yapılandırabilirsiniz:
- AuthenticationEvents__CustomCallerAppId - istediğiniz istemcinin guid değeri. Sağlanmazsa varsayılır
99045fe1-7639-4a75-9d4a-577b6ca3810f.
Tetikleyicinin belirteci doğrulamasını alma
Tetikleyici, Azure İşlevi hizmetinde barındırilmeyen yerel ortamlarda veya ortamlarda belirteç doğrulamasını yapabilir. Aşağıdaki uygulama ayarlarını yapın:
- AuthenticationEvents__TenantId - kiracı kimliğiniz
- AuthenticationEvents__AudienceAppId - seçenek 1'deki "İzin verilen hedef kitle" ile aynı değer.
- AuthenticationEvents__CustomCallerAppId (isteğe bağlı) - istediğiniz istemcinin guid değeri. Sağlanmazsa varsayılır
99045fe1-7639-4a75-9d4a-577b6ca3810f.
Örnek local.settings.json dosya:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"AuthenticationEvents__TenantId": "8615397b-****-****-****-********06c8",
"AuthenticationEvents__AudienceAppId": "api://46f98993-****-****-****-********0038",
"AuthenticationEvents__CustomCallerAppId": "46f98993-****-****-****-********0038"
}
}
Belirteç doğrulaması yok
Yerel geliştirme sırasında belirtecin kimliğini doğrulamak istemiyorsanız aşağıdaki uygulama ayarını yapın:
- AuthenticationEvents__BypassTokenValidation - değeri
truetetikleyicinin belirteci doğrulamasını denetlememesini sağlar.
Hızlı Başlangıç
- Visual Studio Code
- Visual Studio Code’u başlatma
- Komut paleti aracılığıyla terminal komutunu
func init . --worker-runtime nodeçalıştırma - Komut paleti aracılığıyla terminal komutunu
func newçalıştırma - Proje oluşturma istemlerini izleyin
- Komut paleti aracılığıyla terminal komutunu
npm install @azure/functions-authentication-eventsçalıştırma - Komut paleti aracılığıyla terminal komutunu
npm installçalıştırma - Komut paleti aracılığıyla terminal komutunu
npm run-script buildçalıştırma
- Geliştirme amacıyla test için belirteç doğrulamasının teslimi:
- AuthenticationEvents__BypassTokenValidation uygulama anahtarını local.settings.json dosyasının "Değerler" bölümüne ekleyin ve değerini true olarak ayarlayın. Yerel ortamınızda local.settings.json dosyası yoksa İşlev Uygulamanızın kökünde bir dosya oluşturun.
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "node",
"AuthenticationEvents__BypassTokenValidation": true
}
}
- Proje yüklendikten sonra örnek kodu çalıştırabilirsiniz ve Azure işlevleri geliştiricisinin uygulamasının bitiş noktanızı yüklediğini görmeniz gerekir.
Önemli kavramlar
Azure .NET SDK'sının temel kavramları burada bulunabilir
Belgeler
İşlev yayımlandıktan sonra, günlüğe kaydetme ve ölçümler hakkında burada bulunabilecek bazı iyi okumalar vardır
API Belgeleri için bkz. (TBD Bağlantısı)
Bu işlem önizlemeye geçtikten sonra hataya neden olan hiçbir değişiklik yapılmaz ve özel önizlemeye işaret eden nuget kaynağını kaldırmak kadar basit olur.
Örnekler
Belirteç Artırmayı Test Etmek için lütfen aşağıdakileri yapın.
- Önceki adımda oluşturulan projeyi açın. (Hızlı Başlangıç)
- Uygulamayı çalıştırın.
func host start - Azure işlevleri geliştiricisinin uygulaması başlatıldıktan sonra, uygulama başlatılırken görüntülenen dinleme URL'sini kopyalayın.
- Not: "OnTokenIssuanceStart" adlı kayıtlı bir işlev dinleyicimiz olması durumunda tüm Kimlik Doğrulama işlevleri listelenir
- ardından işlev uç noktanız, dinleme URL'si ile işlevin bir bileşimi olur, örneğin: "http://localhost:7071/runtime/webhooks/AuthenticationEvents?code=(YOUR_CODE)& function=OnTokenIssuanceStart"
- Postman veya Fiddler gibi bir öğe kullanarak aşağıdaki yükü gönderin.
- Postman kullanma adımları bulunabilir (Bağlantı TBD)
{
"type": "microsoft.graph.authenticationEvent.tokenIssuanceStart",
"source": "/tenants/00000001-0000-0ff1-ce00-000000000000/applications/ef9e995c-efdb-4e76-97a9-8cdfc6e06afc",
"data": {
"@odata.type": "microsoft.graph.onTokenIssuanceStartCalloutData",
"tenantId": "00000001-0000-0ff1-ce00-000000000000",
"authenticationEventListenerId": "f2390d57-9664-4dde-b625-f0115925e1e2",
"customAuthenticationExtensionId": "9cc1c1ed-5f04-4fdf-85c0-94a7c6ea819c",
"authenticationContext": {
"correlationId": "f4bd1870-b774-4fa5-ba78-e08ac6be14c0",
"client": {
"ip": "127.0.0.1",
"locale": "en-us",
"market": "en-us"
},
"protocol": "OAUTH2.0",
"clientServicePrincipal": {
"id": "eedfddb9-304e-4d62-aa83-24700a0bcf0e",
"appId": "ef9e995c-efdb-4e76-97a9-8cdfc6e06afc",
"appDisplayName": "",
"displayName": "Test application"
},
"resourceServicePrincipal": {
"id": "eedfddb9-304e-4d62-aa83-24700a0bcf0e",
"appId": "ef9e995c-efdb-4e76-97a9-8cdfc6e06afc",
"appDisplayName": "",
"displayName": "Test application"
},
"user": {
"companyName": "Evo Sts Test",
"country": "",
"id": "69d24544-c420-4721-a4bf-106f2378d9f6",
"mail": "testadmin@evostsoneboxtest.com",
"onPremisesSamAccountName": "testadmin",
"onPremisesSecurityIdentifier": "testadmin",
"preferredDataLocation": "",
"userPrincipalName": "testadmin@evostsoneboxtest.com"
}
}
}
}
- Şu yanıtı görmeniz gerekir:
{
"data": {
"@odata.type": "microsoft.graph.onTokenIssuanceStartResponseData",
"actions": [
{
"@odata.type": "ProvideClaimsForToken",
"claims": [
{
"DateOfBirth": "01/01/2000"
},
{
"CustomRoles": [
"Writer",
"Editor"
]
}
]
}
]
}
}
Sorun giderme
- Visual Studio Code
- Visual Studio Code çalıştırılıyorsa, yerel Azure Depolama Öykünücüsü'nde satırlar boyunca bir hata alırsanız öykünücüyü el ile başlatabilirsiniz.! (Not: Azure Depolama öykünücüsü artık kullanım dışıdır ve önerilen değiştirme Azurite'dir)
- Mac'te Visual Studio Code kullanıyorsanız lütfen Azurite kullanın
- Oluşturulan öngörüleni çalıştırmaya çalışırken Windows'ta aşağıdaki hatayı görürseniz (bu bir hatadır).
- Bu, powershell'de
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachinebu komut yürütülerek çözülebilir. Bununla ilgili daha fazla bilgi burada ve burada bulunabilir
Sonraki adımlar
Azure SDK hakkında daha fazla bilgi için lütfen bu web sitesine bakın
Yayımlama
- Azure Uygulaması oluşturmak ve yayımlamak için buradaki yönergeleri izleyin. </azure/azure-functions/functions-develop-vs?tabs=in-process#publish-to-azure>
- Yayımlanan gönderme uç noktanızı belirlemek için oluşturduğunuz azure işlev uç noktasını birleştirin, dinleyici ve dinleyici koduna yönlendirin. Dinleme kodu, azure işlev uygulamanıza gidip "Uygulama Anahtarları" öğesini seçip AuthenticationEvents_extension değerini kopyalayarak bulunabilir.
- Örneğin: "https://azureautheventstriggerdemo.azurewebsites.net/runtime/webhooks/AuthenticationEvents?code=(AuthenticationEvents_extension_key)& function=OnTokenIssuanceStart"
- Üretim ortamınızın belirteç kimlik doğrulaması için doğru uygulama ayarlarına sahip olduğundan emin olun.
- Bir kez daha yukarıdaki yükü yeni uç noktaya göndererek yayımlanan işlevi test edebilirsiniz.
Katkıda bulunma
Bu depoya katkıda bulunma hakkında ayrıntılı bilgi için katkıda bulunma kılavuzuna bakın.
Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için bkz. https://cla.microsoft.com.
Bir çekme isteği gönderdiğinizde, CLA robotu bir CLA sağlamanız gerekip gerekmediğini otomatik olarak belirler ve çekme isteğini uygun şekilde donatır (örn. etiket, açıklama). Robot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Bunu CLA'mızı kullanarak tüm depolarda yalnızca bir kez yapmanız gerekir.
Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları SSS bölümüne bakın veya ek sorularınız veya yorumlarınızla iletişime geçin opencode@microsoft.com .
Azure SDK for JavaScript