Microsoft 365 Girişini Flask Web Uygulamalarına Entegre Edin

Microsoft 365 Girişini Flask Web Uygulamalarına Entegre Edin
Microsoft 365 Girişini Flask Web Uygulamalarına Entegre Edin

Microsoft 365 Kimlik Doğrulamasını Ayarlama

Eğitim amaçlı web uygulamaları geliştirirken Microsoft 365 e-posta gibi kurumsal kaynakların entegre edilmesi, kullanıcı deneyimini iyileştirebilir ve oturum açma süreçlerini kolaylaştırabilir. Bu entegrasyon özellikle uygulamaların üniversite BT politikalarıyla uyumlu hale getirilmesi gerektiğinde kullanışlıdır; bu durum, üniversite kimlik bilgileri altında uygulamaların oluşturulmasını kısıtlayabilir.

Bu senaryoda uygulamayı kurmak için kişisel bir Microsoft Azure hesabı kullanmak pratik bir çözümdür. Ancak üniversite e-postası ile oturum açmaya çalışırken kiracı kısıtlamalarıyla ilgili sorunlar gibi zorluklar ortaya çıkabilir. Bu, uygulamanın işlevselliğinden veya güvenliğinden ödün vermeden, farklı kiracılardaki kullanıcı hesaplarını yönetmeye yönelik bir strateji gerektirir.

Emretmek Tanım
oauth.remote_app() OAuth için yeni bir uzak uygulama örneğini başlatır; OAuth sağlayıcılarıyla iletişimi yönetmek için kullanılır.
flask_oauthlib.client.OAuth OAuth servis sağlayıcılarını entegre etmeye yönelik, OAuth protokolleri aracılığıyla kimlik doğrulamayı kolaylaştıran bir Flask uzantısı.
authorized_response() Flask-OAuthlib'in bir parçası olan bu yöntem, geri çağırma işlevinden yetkili OAuth yanıtını alır.
session['oauth_token'] Daha sonra erişim için oturumda OAuth jetonunu depolamak için kullanılır; kullanıcı oturumlarını ve kimlik doğrulama durumunu yönetmek için kritik öneme sahiptir.
microsoft.authorize() Kullanıcının uygulamayı yetkilendirebileceği OAuth sağlayıcısının yetkilendirme URL'sine yönlendiren bir yöntem.
url_for() Flask'ta belirli bir görünüm işlevi için bir uç nokta oluşturan bir yardımcı işlev. Yönlendirmeler için URL'ler oluşturmak için kullanışlıdır.

Microsoft 365 Kimlik Doğrulaması ile Şişe Entegrasyonunu Açıklama

Ön uç ve arka uç komut dosyaları birlikte Microsoft 365 oturum açma işleminin Flask web uygulamasına entegrasyonunu kolaylaştırır. Ön uçta, basit bir HTML sayfası, tıklandığında kullanıcıyı kimlik doğrulaması için arka uca yönlendirmek üzere bir JavaScript işlevini tetikleyen bir düğme sunar. Bu süreç şu şekilde başlar: loginWithMicrosoft() pencere konumunu Flask tarafından yönetilen arka uç rotasına değiştiren işlev. Arka uç komut dosyasının kullandığı Flask Ve Flask-OAuthlib OAuth akışını Microsoft'un kimlik platformuyla yönetmek.

Arka uçta, oauth.remote_app() komutu, uygulama kimlik bilgilerini kullanarak Microsoft'un OAuth uç noktalarıyla bağlantı kurar. microsoft.authorize() işlevi, kullanıcıyı Microsoft'un yetkilendirme sayfasına yönlendirerek kimlik doğrulama işlemini başlatır. Kullanıcı oturum açtıktan ve gerekli izinleri verdikten sonra, OAuth sağlayıcısı, belirtilen geri çağırma URL'sini kullanarak bunları uygulamaya geri gönderir. url_for('authorized'). authorized_response() yöntemi bu geri aramayı işleyerek kimlik doğrulamayı onaylamak ve kullanıcının oturumunu sürdürmek için gereken erişim belirtecini alır.

Ön Uç Microsoft 365 Kimlik Doğrulama Arayüzü

Ön uç için kullanılan HTML ve JavaScript

<html>
<head>
<title>Login with Microsoft</title>
</head>
<body>
<button onclick="loginWithMicrosoft()">Sign In with Microsoft</button>
<script>
function loginWithMicrosoft() {
    window.location.href = '/auth/microsoft';
}
</script>
</body>
</html>

Microsoft 365 ile Arka Uç Kimlik Doğrulaması Akışı

Arka uç için kullanılan Python ve Flask

from flask import Flask, redirect, url_for, session
from flask_oauthlib.client import OAuth
import os

app = Flask(__name__)
app.secret_key = 'development'
oauth = OAuth(app)

microsoft = oauth.remote_app(
    'microsoft',
    consumer_key='YOUR_APP_ID',
    consumer_secret='YOUR_APP_SECRET',
    request_token_params={'scope': 'User.Read'}
    base_url='https://graph.microsoft.com/v1.0/',
    request_token_url=None,
    access_token_method='POST',
    access_token_url='https://login.microsoftonline.com/common/oauth2/v2.0/token',
    authorize_url='https://login.microsoftonline.com/common/oauth2/v2.0/authorize'
)

@app.route('/')
def index():
    return '<h1>Welcome to the Flask App</h1>' + '<a href="/login">Login with Microsoft</a>'

@app.route('/login')
def login():
    return microsoft.authorize(callback=url_for('authorized', _external=True))

@app.route('/login/authorized')
def authorized():
    response = microsoft.authorized_response()
    if response is None or response.get('access_token') is None:
        return 'Access denied: reason={0} error={1}'.format(
            request.args['error'], request.args['error_description'])
    session['oauth_token'] = (response['access_token'], '')
    return 'Logged in as id={0}'.format(session['oauth_token'])

@microsoft.tokengetter
def get_microsoft_oauth_token():
    return session.get('oauth_token')

if __name__ == '__main__':
    app.run(debug=True)

Flask'ta Microsoft 365 Kimlik Doğrulaması için Gelişmiş Kurulum

Microsoft 365 oturum açma işlemini üniversite tarafından yönetilen bir e-posta kullanmadan entegre etme sorununu çözmek için Azure'daki çok kiracılı uygulamalar kavramını anlamak önemlidir. Çok kiracılı bir uygulama, birden çok Azure AD kiracısındaki kullanıcıların uygulamaya erişmesine olanak tanır; bu, öğrencilerin farklı etki alanı e-postalarına sahip olabileceği üniversite ayarları için idealdir. Bu kurulum, Azure uygulamasının herhangi bir Azure AD kiracısından oturum açma işlemlerini kabul edecek şekilde yapılandırılmasını gerektirir; bu, uygulama bildirimindeki 'signInAudience'ın 'AzureADMultipleOrgs' olarak ayarlanmasıyla gerçekleştirilir.

Bu yapılandırma değişikliği, uygulama başlangıçta kişisel bir e-postayla oluşturulmuş olsa bile öğrencilerin üniversite e-postalarını kullanmalarına olanak tanır. Ayrıca geliştiricinin her kullanıcıyı kiracıya ayrı ayrı eklemesine gerek kalmadığından yönetimi basitleştirir. Bu yaklaşım, eğitim uygulamalarında daha geniş erişilebilirlik ve sorunsuz entegrasyon sağlamak için Azure'un kimlik yönetimi hizmetlerinin esnekliğinden yararlanır.

Flask Uygulamalarında Microsoft 365 Entegrasyonu Hakkında Sık Sorulan Sorular

  1. Azure AD çok kiracılı kimlik doğrulaması nedir?
  2. Azure AD çok kiracılı kimlik doğrulaması, uygulamaların yalnızca uygulamanın kayıtlı olduğu yerden değil, birden fazla Azure AD kiracısından kullanıcılara hizmet vermesine olanak tanır.
  3. Azure çok kiracılı için Flask uygulamamı nasıl yapılandırabilirim?
  4. Bildirimde 'signInAudience'ı ayarlayarak herhangi bir Azure AD kiracısından oturum açmaları kabul etmek için Azure'daki uygulama kaydını değiştirmeniz gerekir.
  5. Kullanmanın faydaları nelerdir? oauth.remote_app() Flask'ta mı?
  6. Bu işlev, jeton alma ve depolama da dahil olmak üzere OAuth akışını yöneterek OAuth sağlayıcılarına bağlanmayı basitleştirir.
  7. Bir kullanıcı neden hesabının kiracıda mevcut olmadığını belirten bir hatayla karşılaşabilir?
  8. Bu durum genellikle uygulamanın çok kiracılı erişim için ayarlanmaması veya kullanıcının kiracıda harici kullanıcı olarak kayıtlı olmaması durumunda ortaya çıkar.
  9. Flask'ta kimlik doğrulama işlemi sırasında oluşan hataları nasıl halledebilirim?
  10. Hata işlemeyi uygulayın authorized_response() Erişim reddi veya eksik belirteçler gibi hataları yakalama ve bunlara yanıt verme işlevi.

Microsoft 365 Kimlik Doğrulama Entegrasyonu Hakkında Son Düşünceler

Sonuç olarak, Microsoft 365 oturum açma işleminin üniversite e-postası kullanmadan Flask uygulamalarına entegre edilmesi, kişisel kimlik bilgileriyle bir Azure uygulamasının kurulmasını ve bunu çok kiracılı erişim için yapılandırmayı içerir. Bu yaklaşım, yalnızca üniversitelerin başvuru oluşturmak için resmi e-postaların kullanılmasına getirebileceği kısıtlamaları aşmakla kalmıyor, aynı zamanda farklı kiracılardaki kullanıcılar için oturum açma sürecini de kolaylaştırıyor. Geliştiriciler, OAuth için en iyi uygulamaları takip ederek ve olası hataları etkili bir şekilde ele alarak sorunsuz ve güvenli bir kullanıcı deneyimi sağlayabilir.