@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
110 lines (109 loc) • 3.34 kB
TypeScript
import { Observable, Subject } from 'rxjs';
import { AjaxError, AjaxRequest } from 'rxjs/ajax';
import { CimStreamOptions, CimStreamResponse } from '../data/cim-stream';
import { HttpStatusCode } from '../data/http-constants';
import { PowerShellStreamResponse } from '../data/powershell-stream';
/**
* Defines an signed http request token
*/
export interface SignedHttpRequestToken {
/**
* JSON Web Token (string).
*/
jwt: string;
/**
* User name.
*/
username: string;
}
export interface SignOnTokenResponse {
/**
* The time aquired.
*/
time: number;
/**
* The signed http request token.
*/
token: SignedHttpRequestToken;
}
export interface SignOnTokenRefresh {
/**
* The time aquired.
*/
time: number;
}
/**
* Manage Signed HTTP Request token (Proof of possession token) handling.
*/
export declare class SignOnManager {
/**
* Wait for one minute to respond by the portal.
*/
private portalMaxWaitTimeout;
/**
* The PoP Authorization Token.
*/
signedHttpRequestToken: SignedHttpRequestToken;
/**
* The sign on token awaiter subject.
*/
signOnTokenAwaiter: Subject<SignOnTokenResponse>;
/**
* The sign on token requester subject.
*/
private signOnTokenRefresh;
/**
* The refresh request to the authorization manager.
*/
private refreshCall;
/**
* Initializes a new instance of the SignOnManager class.
*/
constructor(refreshCall: () => Observable<SignOnTokenResponse>);
/**
* Gets a valude indicating whethere sign on token is active and configured.
*/
get isSignOnTokenEnabled(): boolean;
/**
* Gets the sign on token request observable by Shell.
*/
get signOnTokenRefreshTarget(): Observable<SignOnTokenRefresh>;
/**
* Apply signed http request token.
*/
applySignedHttpRequestToken(token: SignedHttpRequestToken): void;
/**
* Request sign on token to refresh.
* @returns success void.
*/
requestSignOnRefresh(): Observable<SignOnTokenResponse>;
/**
* Check if it can handle unauthorized login case.
* @param code the error code.
* @param error the ajax error response.
* @returns true if it can handle.
*/
canHandleUnauthorizedLogin(code: HttpStatusCode, error: AjaxError): boolean;
/**
* Handles the unauthorized login case.
* @param code the error code.
* @param request the ajax request.
* @param error the ajex error reponse.
* @returns success if it could handled.
*/
handleUnauthorizedLogin(code: HttpStatusCode, request: AjaxRequest, error: AjaxError): Observable<AjaxRequest>;
/**
* Check if it can handle unauthorized login case.
* @param response the response of CIM stream query.
*/
canHandleStreamUnauthorizedLogin(response: CimStreamResponse): boolean;
/**
* Handle returns true for an ajax error, this method can be called to handle that error.
*/
handleStreamUnauthorizedLogin(options: CimStreamOptions, response: CimStreamResponse | PowerShellStreamResponse): Observable<CimStreamOptions>;
/**
* Set AAD authorization header.
* @param headers the headers.
*/
SetAadAuthorizationHeader(headers?: any): void;
}