Integroi Microsoft 365 -kirjautuminen Flask Web Appsiin

Integroi Microsoft 365 -kirjautuminen Flask Web Appsiin
Integroi Microsoft 365 -kirjautuminen Flask Web Appsiin

Microsoft 365 -todennuksen määrittäminen

Kun kehitetään verkkosovelluksia koulutustarkoituksiin, institutionaalisten resurssien, kuten Microsoft 365 -sähköpostin, integrointi voi parantaa käyttökokemusta ja virtaviivaistaa kirjautumisprosesseja. Tämä integrointi on erityisen hyödyllinen, kun sovellusten on oltava yliopistojen IT-käytäntöjen mukaisia, mikä saattaa rajoittaa sovellusten luomista yliopiston valtuustiedoilla.

Tässä skenaariossa henkilökohtaisen Microsoft Azure -tilin käyttäminen sovelluksen määrittämiseen on käytännöllinen ratkaisu. Haasteita voi kuitenkin syntyä, kuten ongelmia vuokralaisten rajoitusten kanssa yritettäessä kirjautua sisään yliopiston sähköpostilla. Tämä edellyttää strategiaa, jolla hallinnoidaan eri vuokralaisten käyttäjätilejä vaarantamatta sovelluksen toimivuutta tai turvallisuutta.

Komento Kuvaus
oauth.remote_app() Alustaa uuden etäsovelluksen esiintymän OAuthille; sitä käytetään yhteydenpitoon OAuth-palveluntarjoajien kanssa.
flask_oauthlib.client.OAuth Flask-laajennus OAuth-palveluntarjoajien integrointiin, mikä helpottaa OAuth-protokollien kautta tapahtuvaa todennusta.
authorized_response() Tämä menetelmä osana Flask-OAuthlibiä noutaa valtuutetun OAuth-vastauksen takaisinsoittotoiminnosta.
session['oauth_token'] Käytetään OAuth-tunnuksen tallentamiseen istuntoon myöhempää käyttöä varten, mikä on kriittinen käyttäjien istuntojen ja todennustilan hallinnassa.
microsoft.authorize() Menetelmä, joka ohjaa OAuth-palveluntarjoajan valtuutus-URL-osoitteeseen, jossa käyttäjä voi valtuuttaa sovelluksen.
url_for() Aputoiminto Flaskissa, joka luo päätepisteen tietylle näkymäfunktiolle. Se on hyödyllinen URL-osoitteiden luomiseen uudelleenohjauksia varten.

Selitys pullon integroinnista Microsoft 365 -todennuksen kanssa

Käyttöliittymän ja taustaohjelman komentosarjat yhdessä helpottavat Microsoft 365 -kirjautumisen integrointia Flask-verkkosovellukseen. Käyttöliittymässä yksinkertainen HTML-sivu esittää painikkeen, jota napsautettuna käynnistää JavaScript-toiminto, joka ohjaa käyttäjän taustajärjestelmään todennusta varten. Tämä prosessi alkaa loginWithMicrosoft() toiminto, joka muuttaa ikkunan sijainnin Flaskin käsittelemäksi taustareitiksi. Backend-skripti käyttää Flask ja Flask-OAuthlib hallita OAuth-kulkua Microsoftin identiteettialustalla.

Taustalla, oauth.remote_app() -komento muodostaa yhteyden Microsoftin OAuth-päätepisteisiin käyttämällä sovelluksen tunnistetietoja. The microsoft.authorize() toiminto käynnistää todennusprosessin ohjaamalla käyttäjän Microsoftin valtuutussivulle. Kun käyttäjä on kirjautunut sisään ja myöntänyt tarvittavat käyttöoikeudet, OAuth-palveluntarjoaja lähettää ne takaisin sovellukselle käyttämällä kohdassa määritettyä takaisinsoitto-URL-osoitetta. url_for('authorized'). The authorized_response() menetelmä käsittelee tämän takaisinkutsun ja noutaa käyttöoikeustunnuksen, joka tarvitaan todennuksen vahvistamiseen ja käyttäjän istunnon ylläpitämiseen.

Käyttöliittymän Microsoft 365 -todennusliittymä

Käyttöliittymässä käytetty HTML ja 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>

Backend Authentication Flow Microsoft 365:n kanssa

Python ja Flask käytetään taustaohjelmassa

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)

Lisäasetukset Microsoft 365 -todennusta varten Flaskissa

Jotta voit ratkaista ongelman, joka liittyy Microsoft 365 -kirjautumisen integrointiin ilman yliopiston hallinnoimaa sähköpostia, on tärkeää ymmärtää usean vuokraajan sovellusten käsite Azuressa. Usean vuokralaisen sovelluksen avulla useiden Azure AD -vuokralaisten käyttäjät voivat käyttää sovellusta, joka on ihanteellinen yliopisto-asetuksiin, joissa opiskelijoilla voi olla eri verkkotunnuksen sähköpostiosoitteita. Tämä asennus edellyttää, että Azure-sovellus on määritettävä hyväksymään kirjautumiset kaikilta Azure AD -vuokralaisilta, mikä tehdään asettamalla sovelluksen luettelon "signInAudience" arvoksi "AzureADMultipleOrgs".

Tämä asetusmuutos antaa opiskelijoille mahdollisuuden käyttää yliopiston sähköposteja, vaikka sovellus luotiin alun perin henkilökohtaisella sähköpostilla. Se myös yksinkertaistaa hallintaa, koska kehittäjän ei tarvitse erikseen lisätä jokaista käyttäjää vuokralaiseen. Tämä lähestymistapa hyödyntää Azuren identiteetinhallintapalvelujen joustavuutta varmistaakseen laajemman käytettävyyden ja saumattoman integroinnin koulutussovelluksiin.

Yleisiä kysymyksiä Microsoft 365 -integraatiosta Flask-sovelluksissa

  1. Mikä on Azure AD:n usean vuokraajan todennus?
  2. Azure AD:n usean vuokraajan todennus sallii sovellusten palvella käyttäjiä useista Azure AD -vuokralaisista, ei vain siitä, johon sovellus rekisteröitiin.
  3. Kuinka määritän Flask-sovellukseni Azure-monivuokraajalle?
  4. Sinun on muokattava sovelluksen rekisteröintiä Azuressa, jotta voit hyväksyä kirjautumiset kaikilta Azure AD -vuokralaisilta asettamalla 'signInAudience' luettelossa.
  5. Mitä hyötyä käytöstä on oauth.remote_app() pullossa?
  6. Tämä toiminto yksinkertaistaa yhteyden muodostamista OAuth-palveluntarjoajiin hallitsemalla OAuth-kulkua, mukaan lukien tunnuksen haku ja tallennus.
  7. Miksi käyttäjä voi saada virheilmoituksen, jonka mukaan hänen tiliään ei ole vuokralaisessa?
  8. Tämä tapahtuu yleensä, jos sovellusta ei ole määritetty usean vuokralaisen käyttöön tai jos käyttäjää ei ole rekisteröity vuokralaisen ulkopuoliseksi käyttäjäksi.
  9. Kuinka voin käsitellä virheitä todennusprosessin aikana Flaskissa?
  10. Ota virheenkäsittely käyttöön authorized_response() toiminto havaita virheitä, kuten pääsyn estämistä tai puuttuvia tokeneita, ja vastata niihin.

Viimeisiä ajatuksia Microsoft 365 -todennuksen integroinnista

Yhteenvetona voidaan todeta, että Microsoft 365 -sisäänkirjautumisen integrointi Flask-sovelluksiin ilman yliopiston sähköpostia edellyttää Azure-sovelluksen määrittämistä henkilökohtaisilla tunnistetiedoilla ja sen määrittämistä usean vuokraajan käyttöä varten. Tämä lähestymistapa ei vain kiertää rajoituksia, joita yliopistot saattavat asettaa virallisten sähköpostien käytölle sovellusten luomiseen, vaan myös yksinkertaistaa eri vuokralaisten käyttäjien kirjautumisprosessia. Noudattamalla OAuthin parhaita käytäntöjä ja käsittelemällä mahdollisia virheitä tehokkaasti kehittäjät voivat tarjota saumattoman ja turvallisen käyttökokemuksen.