A Microsoft 365 hitelesítés beállítása
Az oktatási célú webalkalmazások fejlesztésekor az intézményi erőforrások, például a Microsoft 365 e-mail integrálása javíthatja a felhasználói élményt és egyszerűsítheti a bejelentkezési folyamatokat. Ez az integráció különösen akkor hasznos, ha az alkalmazásoknak igazodniuk kell az egyetemi informatikai szabályzatokhoz, ami korlátozhatja az alkalmazások egyetemi hitelesítő adatokkal történő létrehozását.
Ebben a forgatókönyvben praktikus megoldás egy személyes Microsoft Azure-fiók használata az alkalmazás beállításához. Felmerülhetnek azonban kihívások, például a bérlői korlátozásokkal kapcsolatos problémák, amikor egyetemi e-mail-címmel próbálnak bejelentkezni. Ez szükségessé teszi a különböző bérlők felhasználói fiókjainak kezelését az alkalmazás funkcióinak vagy biztonságának veszélyeztetése nélkül.
Parancs | Leírás |
---|---|
oauth.remote_app() | Inicializál egy új távoli alkalmazáspéldányt az OAuth számára; az OAuth-szolgáltatókkal való kommunikáció kezelésére szolgál. |
flask_oauthlib.client.OAuth | Flask-bővítmény az OAuth-szolgáltatók integrálásához, megkönnyítve az OAuth-protokollokon keresztüli hitelesítést. |
authorized_response() | A Flask-OAuthlib része, ez a módszer lekéri az engedélyezett OAuth-választ a visszahívási függvénytől. |
session['oauth_token'] | Az OAuth-jogkivonat munkamenetben való tárolására szolgál későbbi eléréshez, kritikus a felhasználói munkamenetek és a hitelesítési állapot kezeléséhez. |
microsoft.authorize() | Olyan módszer, amely átirányít az OAuth-szolgáltató engedélyezési URL-címére, ahol a felhasználó engedélyezheti az alkalmazást. |
url_for() | A Lombik segédfunkciója, amely végpontot generál egy adott nézetfüggvényhez. Hasznos lehet URL-ek generálásához átirányításokhoz. |
A lombik integrációjának magyarázata a Microsoft 365 hitelesítéssel
A frontend és a backend szkriptek együttesen megkönnyítik a Microsoft 365 bejelentkezés Flask webalkalmazásba való integrálását. Az előtérben egy egyszerű HTML-oldalon található egy gomb, amelyre kattintáskor egy JavaScript-függvény aktiválódik, amely átirányítja a felhasználót a háttérrendszerre hitelesítés céljából. Ez a folyamat azzal kezdődik, loginWithMicrosoft() funkció, amely megváltoztatja az ablak helyét a Flask által kezelt háttérútvonalra. A háttérszkript használja Flask és Flask-OAuthlib az OAuth folyamat kezeléséhez a Microsoft identitásplatformjával.
A háttérben a oauth.remote_app() parancs kapcsolatot létesít a Microsoft OAuth-végpontjaival az alkalmazás hitelesítő adatai segítségével. A microsoft.authorize() funkció elindítja a hitelesítési folyamatot úgy, hogy átirányítja a felhasználót a Microsoft engedélyezési oldalára. Miután a felhasználó bejelentkezik és megadja a szükséges engedélyeket, az OAuth-szolgáltató visszaküldi őket az alkalmazásnak a következőben megadott visszahívási URL-címen. url_for('authorized'). A authorized_response() metódus feldolgozza ezt a visszahívást, lekérve a hitelesítés megerősítéséhez és a felhasználói munkamenet fenntartásához szükséges hozzáférési tokent.
Frontend Microsoft 365 hitelesítési felület
A frontendhez használt HTML és 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>
Háttérbeli hitelesítési folyamat a Microsoft 365-tel
A háttérben használt Python és 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)
Speciális beállítások a Microsoft 365 hitelesítéshez Lombikban
A Microsoft 365 bejelentkezés egyetemi e-mail használata nélkül történő integrálásával kapcsolatos probléma megoldásához elengedhetetlen, hogy megértse a több-bérlős alkalmazások koncepcióját az Azure-ban. A többbérlős alkalmazás lehetővé teszi a felhasználók számára, hogy több Azure AD-bérlőből hozzáférjenek az alkalmazáshoz, amely ideális olyan egyetemi beállításokhoz, ahol a hallgatók különböző tartományi e-mail-címekkel rendelkezhetnek. Ehhez a beállításhoz be kell állítani az Azure-alkalmazást, hogy elfogadja a bejelentkezéseket bármely Azure AD-bérlőtől, ami úgy történik, hogy az alkalmazás jegyzékében a „signInAudience” beállítást „AzureADMultipleOrgs” értékre állítja.
Ez a konfigurációmódosítás lehetővé teszi a hallgatók számára, hogy egyetemi e-mailjeiket használják, még akkor is, ha az alkalmazást eredetileg személyes e-mail-címmel hozták létre. A kezelést is leegyszerűsíti, mivel a fejlesztőnek nem kell minden felhasználót külön-külön hozzáadnia a bérlőhöz. Ez a megközelítés kihasználja az Azure identitáskezelési szolgáltatásainak rugalmasságát, hogy szélesebb körű hozzáférhetőséget és zökkenőmentes integrációt biztosítson az oktatási alkalmazásokban.
Gyakori kérdések a Microsoft 365 Flask Apps integrációjával kapcsolatban
- Mi az Azure AD több-bérlős hitelesítés?
- Az Azure AD több-bérlős hitelesítése lehetővé teszi, hogy az alkalmazások több Azure AD-bérlőből is kiszolgálják a felhasználókat, nem csak attól, ahol az alkalmazást regisztrálták.
- Hogyan konfigurálhatom a Flask alkalmazást az Azure több bérlőhöz?
- Módosítania kell az alkalmazásregisztrációt az Azure-ban, hogy elfogadja a bejelentkezéseket bármely Azure AD-bérlőtől a „signInAudience” beállításával a jegyzékben.
- Milyen előnyei vannak a használatának oauth.remote_app() a lombikban?
- Ez a funkció leegyszerűsíti az OAuth-szolgáltatókhoz való csatlakozást az OAuth-folyamat kezelésével, beleértve a token lekérését és tárolását.
- Miért kaphat egy felhasználó hibaüzenetet arról, hogy fiókja nem létezik a bérlőben?
- Ez általában akkor fordul elő, ha az alkalmazás nincs beállítva több bérlős hozzáférésre, vagy ha a felhasználó nincs regisztrálva külső felhasználóként a bérlőben.
- Hogyan kezelhetem a hibákat a Lombik hitelesítési folyamata során?
- Végezze el a hibakezelést a authorized_response() funkció a hibák, például a hozzáférési megtagadások vagy a hiányzó tokenek elfogására és reagálására.
Utolsó gondolatok a Microsoft 365 hitelesítési integrációról
Összefoglalva, a Microsoft 365 bejelentkezés Flask-alkalmazásokba való integrálása egyetemi e-mail-cím használata nélkül magában foglalja egy Azure-alkalmazás beállítását személyes hitelesítő adatokkal, és konfigurálja azt a több-bérlős hozzáféréshez. Ez a megközelítés nemcsak megkerüli azokat a korlátozásokat, amelyeket az egyetemek a hivatalos e-mailek alkalmazás-létrehozásához szabhatnak, hanem leegyszerűsíti a különböző bérlők felhasználóinak bejelentkezési folyamatát is. Az OAuth bevált gyakorlatainak követésével és a lehetséges hibák hatékony kezelésével a fejlesztők zökkenőmentes és biztonságos felhasználói élményt nyújthatnak.