Azure App Service ve Azure Işlevlerinde kimlik doğrulama ve yetkilendirme
Azure App Service, yerleşik kimlik doğrulama ve yetkilendirme özellikleri (bazen "kolay kimlik doğrulaması" olarak adlandırılır) sağlar. böylece, Web uygulamanızda, yeniden derlenen API 'de ve mobil arka uçta ve ayrıca Azure işlevlerindeen az veya hiç kod yazmadan kullanıcılara oturum açabilir ve verilere erişebilirsiniz. Bu makalede, App Service uygulamanızın kimlik doğrulama ve yetkilendirme işlemlerini basitleştirmeye nasıl yardımcı olduğu açıklanır.
Yerleşik kimlik doğrulaması neden kullanılmalıdır?
Kimlik doğrulama ve yetkilendirme için bu özelliği kullanmanız gerekli değildir. Seçtiğiniz Web çerçevesindeki paketlenmiş güvenlik özelliklerini kullanabilir veya kendi yardımcı programlarını yazabilirsiniz. Ancak, en son güvenlik, protokol ve tarayıcı güncelleştirmeleriyle çözümünüzün güncel kalmasını sağladığınızdan emin olmanız gerekir.
Kimlik doğrulaması için güvenli bir çözüm (oturum açma kullanıcıları) ve yetkilendirme (güvenli verilere erişim sağlamak) uygulamak çok önemli bir çaba alabilir. Sektörde en iyi uygulamaları ve standartları izlediğinizden emin olmanız ve uygulamanızı güncel tutmanız gerekir. App Service ve Azure Işlevleri için yerleşik kimlik doğrulama özelliği, Federasyon kimlik sağlayıcıları ile kullanıma hazır kimlik doğrulama sağlayarak uygulamanızın geri kalanına odaklanmanızı sağlayarak zaman ve çaba tasarrufu sağlayabilir.
- Azure App Service, çeşitli kimlik doğrulama yeteneklerini Web uygulamanız veya API 'niz için kendi kendinize uygulamadan tümleştirmenize imkan tanır.
- Doğrudan platformda oluşturulmuştur ve belirli bir dil, SDK, güvenlik uzmanlığı veya hatta kullanmak için herhangi bir kod gerektirmez.
- Birden çok oturum açma sağlayıcısıyla tümleştirilebilir. Örneğin, Azure AD, Facebook, Google, Twitter.
Kimlik sağlayıcıları
App Service, üçüncü taraf bir kimlik sağlayıcısının sizin için Kullanıcı kimliklerini ve kimlik doğrulama akışını yönettiği Federal Kimlikkullanır. Aşağıdaki kimlik sağlayıcıları varsayılan olarak kullanılabilir:
| Sağlayıcı | Oturum açma uç noktası | How-To Kılavuzu |
|---|---|---|
| Microsoft Identity platformu | /.auth/login/aad |
App Service Microsoft Identity platform oturumu açma |
/.auth/login/facebook |
Facebook oturum App Service | |
/.auth/login/google |
Google oturum App Service | |
/.auth/login/twitter |
App Service Twitter oturumu açma | |
| herhangi bir openıd Bağlan sağlayıcısı | /.auth/login/<providerName> |
App Service openıd Bağlan oturum açma |
Kimlik doğrulama ve yetkilendirmeyi bu sağlayıcılardan biriyle etkinleştirdiğinizde, oturum açma uç noktası Kullanıcı kimlik doğrulaması ve sağlayıcıdan kimlik doğrulama belirteçleri doğrulaması için kullanılabilir. Kullanıcılarınıza, bu oturum açma seçeneklerinin herhangi bir sayısını sağlayabilirsiniz.
Yerleşik kimlik doğrulaması kullanma konuları
Bu özelliği etkinleştirmek, HTTPS 'yi zorlamak için App Service yapılandırma ayarından bağımsız olarak, uygulamanıza yönelik tüm isteklerin otomatik olarak HTTPS 'ye yönlendirilmesini sağlar. Bunu requireHttps v2 yapılandırmasındaki ayarla devre dışı bırakabilirsiniz. Bununla birlikte, HTTPS ile bir çıkartma önereceğiz ve güvenli olmayan HTTP bağlantıları üzerinden hiçbir güvenlik belirtecinin iletilmemesini güvence altına almalısınız.
App Service, site içeriklerinize ve API 'Lerine erişimi kısıtlamadan veya olmadan kimlik doğrulaması için kullanılabilir. Uygulama erişimini yalnızca kimliği doğrulanmış kullanıcılarla kısıtlamak için, isteğin kimliği doğrulanmamış olarak, yapılandırılmış kimlik sağlayıcılarından biriyle oturum açmak üzere kimlik doğrulaması yapıldığında gerçekleştirilecek eylemi ayarlayın. Kimlik doğrulaması yapmak ancak erişimi kısıtlamak için, isteğin kimliği doğrulanmamış "anonim isteklere Izin ver (eylem yok)" olarak doğrulanmadığında gerçekleştirilecek eylemi ayarlayın.
Not
Her uygulamaya kendi iznini ve onayını vermeniz gerekir. Ayrı dağıtım yuvaları için ayrı uygulama kayıtları kullanarak ortamlar arasında izin paylaşımını önleyin. Yeni kodu sınarken, bu uygulama sorunların üretim uygulamasını etkilemesini önlemeye yardımcı olabilir.
Nasıl çalışır?
Özellik mimarisi
Kimlik doğrulama ve yetkilendirme ara yazılımı bileşeni, uygulamanız ile aynı VM üzerinde çalışan platformun bir özelliğidir. Etkin olduğunda, her gelen HTTP isteği, uygulamanız tarafından işlenmek üzere üzerinden geçirilir.
Platform ara yazılımı, uygulamanız için çeşitli şeyleri işler:
- Belirtilen kimlik sağlayıcısıyla kullanıcıları ve istemcileri doğrular
- Yapılandırılan kimlik sağlayıcıları tarafından verilen OAuth belirteçlerini doğrular, depolar ve yeniler
- Kimliği doğrulanmış oturumu yönetir
- Kimlik bilgilerini HTTP istek üst bilgilerine çıkarır
Modül, uygulama kodınızdan ayrı olarak çalışır ve Azure Resource Manager ayarları kullanılarak veya bir yapılandırma dosyasıkullanılarak yapılandırılabilir. SDK 'lar, belirli programlama dilleri veya uygulama kodunuzda yapılan değişiklikler gerekli değildir.
Windows (kapsayıcı olmayan dağıtım) üzerinde özellik mimarisi
Kimlik doğrulama ve yetkilendirme modülü, uygulamanızla aynı korumalı alanda yerel bir IIS modülü olarak çalışır. Etkin olduğunda, her gelen HTTP isteği, uygulamanız tarafından işlenmek üzere üzerinden geçirilir.
Linux ve kapsayıcılarda Özellik mimarisi
Kimlik doğrulama ve yetkilendirme modülü, uygulama kodınızdan yalıtılmış ayrı bir kapsayıcıda çalışır. Amelçi desenininbilindiğinin kullanılması, Windows benzer işlevleri gerçekleştirmek için gelen trafikle etkileşime girer. İşlem içinde çalıştırılmadığından, belirli dil çerçeveleri ile doğrudan tümleştirme mümkün değildir; Ancak, uygulamanızın ihtiyaç duyacağı ilgili bilgiler, aşağıda açıklandığı gibi istek üstbilgileri kullanılarak geçirilir.
Kimlik doğrulaması akışı
Kimlik doğrulama akışı tüm sağlayıcılar için aynıdır, ancak sağlayıcının SDK 'Sı ile oturum açmak isteyip istemediğinize bağlı olarak farklılık gösterir:
- Sağlayıcı SDK 'Sı olmadan: uygulama App Service için Federasyon oturum açma temsilcisi sağlar. Bu durum genellikle, sağlayıcının oturum açma sayfasını kullanıcıya sunmanızı sağlayan tarayıcı uygulamaları ile aynıdır. Sunucu kodu, oturum açma işlemini yönetir, bu nedenle sunucu yönlendirmeli akış veya sunucu akışı olarak da adlandırılır. Bu durum tarayıcı uygulamaları için geçerlidir. SDK, kullanıcıların App Service kimlik doğrulamasıyla oturum açmasını sağlamak üzere bir Web görünümü açtığından Mobile Apps istemci SDK 'sını kullanarak kullanıcıları imzalayasağlayan yerel uygulamalar için de geçerlidir.
- Sağlayıcı SDK ile: uygulama, kullanıcıları sağlayıcıya el ile imzalar ve doğrulama için App Service kimlik doğrulama belirtecini gönderir. Bu durum genellikle, sağlayıcının oturum açma sayfasını kullanıcıya sunamıyoruz ve tarayıcı tarafından daha az uygulamalar için kullanılır. Uygulama kodu, oturum açma işlemini yönetir, bu nedenle istemci yönlendirmeli akış veya istemci akışı olarak da adlandırılır. Bu durum REST API 'Leri, Azure işlevlerive JavaScript tarayıcı istemcileri için, oturum açma sürecinde daha fazla esneklik gerektiren tarayıcı uygulamaları için de geçerlidir. Ayrıca, sağlayıcının SDK 'sını kullanarak kullanıcıları imzalayasağlayan yerel mobil uygulamalar için de geçerlidir.
App Service bir güvenilen tarayıcı uygulamasından App Service veya Azure işlevlerinde başka bir REST API olan çağrılar, sunucu ile yönlendirilen Flow kullanılarak doğrulanabilir. Daha fazla bilgi için bkz. oturum açma işlemlerini ve oturum açma Işlemlerini özelleştirme.
Aşağıdaki tabloda, kimlik doğrulama akışı adımları gösterilmektedir.
| Adım | Sağlayıcı SDK 'Sı olmadan | Sağlayıcı SDK ile |
|---|---|---|
| 1. Kullanıcı oturum açma | İstemcisini olarak yeniden yönlendirir /.auth/login/<provider> . |
İstemci kodu, kullanıcıyı doğrudan sağlayıcının SDK 'Sı ile imzalar ve bir kimlik doğrulama belirteci alır. Bilgi için sağlayıcının belgelerine bakın. |
| 2. kimlik doğrulama sonrası | Sağlayıcı istemciyi öğesine yeniden yönlendirir /.auth/login/<provider>/callback . |
İstemci kodu, sağlayıcıya doğrulama için olan belirteci gönderir /.auth/login/<provider> . |
| 3. kimliği doğrulanmış oturum oluşturma | App Service, yanıta kimliği doğrulanmış tanımlama bilgisi ekler. | App Service, kendi kimlik doğrulama belirtecini istemci koduna döndürür. |
| 4. kimliği doğrulanmış içerik hizmeti | İstemci sonraki isteklerde kimlik doğrulama tanımlama bilgisi içerir (otomatik olarak tarayıcı tarafından işlenir). | İstemci kodu, kimlik doğrulama belirtecini X-ZUMO-AUTH üst bilgide gösterir (Mobile Apps Istemci SDK 'ları tarafından otomatik olarak işlenir). |
İstemci tarayıcıları için, App Service tüm kimliği doğrulanmamış kullanıcıları otomatik olarak öğesine yönlendirebilir /.auth/login/<provider> . Ayrıca, bir veya daha fazla bağlantıyla kullanıcılara /.auth/login/<provider> tercih ettiğiniz sağlayıcıyı kullanarak oturum açmak için bir veya daha fazla bağlantı sunabilirsiniz.
Yetkilendirme davranışı
Azure Portal, gelen isteğin kimliği doğrulanmamış bir dizi davranışa sahip App Service yapılandırabilirsiniz. Aşağıdaki başlıklar seçenekleri anlatmaktadır.
Kimliği doğrulanmamış isteklere izin ver
Bu seçenek, uygulama kodunuza kimliği doğrulanmamış trafik yetkilendirmesini erteler. Kimliği doğrulanmış istekler için, App Service HTTP üstbilgilerinde kimlik doğrulama bilgileri boyunca de geçirilir.
Bu seçenek, anonim istekleri işlemek için daha fazla esneklik sağlar. Örneğin, kullanıcılarınıza birden çok oturum açma sağlayıcısı sunmanıza olanak tanır. Ancak, kod yazmanız gerekir.
Kimlik doğrulaması gerektir
Bu seçenek, uygulamanıza yönelik tüm kimliği doğrulanmamış trafiği reddeder. Bu reddetme, yapılandırılmış kimlik sağlayıcılarından birine bir yeniden yönlendirme eylemi olabilir. Bu durumlarda, bir tarayıcı istemcisi seçtiğiniz sağlayıcıya yeniden yönlendirilir /.auth/login/<provider> . Anonim istek yerel bir mobil uygulamadan geliyorsa, döndürülen yanıt bir olur HTTP 401 Unauthorized . Reddetme HTTP 401 Unauthorized isteğini, tüm istekler için veya olarak da yapılandırabilirsiniz HTTP 403 Forbidden .
Bu seçenekle, uygulamanızda herhangi bir kimlik doğrulama kodu yazmanız gerekmez. Role özgü yetkilendirme gibi daha ayrıntılı yetkilendirme, kullanıcının taleplerini inceleyerek (bkz. erişim kullanıcı talepleri) işlenebilir.
Dikkat
Erişimin bu şekilde kısıtlanması, uygulamanıza yönelik tüm çağrılar için geçerlidir. Bu, birçok tek sayfalı uygulamalarda olduğu gibi genel kullanıma açık bir giriş sayfası gerektiren uygulamalar için istenmeyebilir.
Not
Varsayılan olarak, Azure AD kiracınızdaki herhangi bir Kullanıcı Azure AD 'den uygulamanız için bir belirteç talep edebilir. Uygulamanıza erişimi tanımlı bir Kullanıcı kümesiyle kısıtlamak istiyorsanız , Azure AD 'de uygulamayı yapılandırabilirsiniz .
Belirteç deposu
App Service, Web uygulamalarınızın, API 'lerin veya yerel mobil uygulamalarınızın kullanıcılarıyla ilişkili belirteçlerin bir deposu olan yerleşik bir belirteç deposu sağlar. Herhangi bir sağlayıcı ile kimlik doğrulamasını etkinleştirdiğinizde, bu belirteç deposu uygulamanız için hemen kullanılabilir. Uygulama kodunuzun Kullanıcı adına bu sağlayıcılardan veriye erişmesi gerekiyorsa, örneğin:
- kimliği doğrulanmış kullanıcının Facebook zaman çizelgesinde gönderi
- Microsoft Graph API 'sini kullanarak kullanıcının şirket verilerini okuyun
Uygulamanızda bu belirteçleri toplamak, depolamak ve yenilemek için genellikle kod yazmanız gerekir. Belirteç deposu ile, ihtiyacınız olduğunda belirteçleri alır ve geçersiz hale geldiklerinde bunları yenilemek App Service söyleyin .
KIMLIK belirteçleri, erişim belirteçleri ve yenileme belirteçleri kimliği doğrulanmış oturum için önbelleğe alınır ve yalnızca ilişkili kullanıcı tarafından erişilebilir.
Uygulamanızdaki belirteçlerle çalışmanız gerekmiyorsa, uygulamanızın kimlik doğrulama/yetkilendirme sayfasında belirteç deposunu devre dışı bırakabilirsiniz.
Günlüğe kaydetme ve izleme
Uygulama günlüğünü etkinleştirirseniz, kimlik doğrulama ve yetkilendirme izlemelerini doğrudan günlük dosyalarınızda görürsünüz. Beklemediğiniz bir kimlik doğrulama hatası görürseniz, mevcut uygulama günlüklerinizi inceleyerek tüm ayrıntıları rahat bir şekilde bulabilirsiniz. Başarısız istek izlemeyietkinleştirirseniz, kimlik doğrulama ve yetkilendirme modülünün başarısız bir istekte hangi rol oynadığını tam olarak görebilirsiniz. İzleme günlüklerinde adlı bir modüle başvuruları arayın EasyAuthModule_32/64 .
Diğer kaynaklar
- Nasıl yapılır: App Service veya Azure Işlevleri uygulamanızı Azure AD oturum açma bilgilerini kullanacak şekilde yapılandırma
- Oturum açma işlemlerini ve oturum açma işlemlerini özelleştirme
- OAuth belirteçleri ve oturumlarıyla çalışma
- Kullanıcı ve uygulama taleplerine erişin
- Dosya tabanlı yapılandırma
Lerinizi
- Öğretici: Azure App Service üzerinde çalışan Web uygulamanıza kimlik doğrulaması ekleme
- öğretici: kullanıcıların Azure App Service (Windows veya Linux) uçtan uca kimlik doğrulama ve yetkilendirme
- Azure AppService EasyAuth (3. taraf) .NET Core tümleştirmesi
- .NET Core ile çalışan Azure App Service kimlik doğrulaması alma (3. taraf)