/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#ifndef __com_sun_star_auth_SSOManagerFactory_idl__
#define __com_sun_star_auth_SSOManagerFactory_idl__

#include <com/sun/star/auth/XSSOManagerFactory.idl>

module com { module sun { module star { module auth {

/** represents a starting point for Single Sign-on interactions.
    <P>The Single Sign-on ( SSO ) APIs provide UNO based access to underlying
       SSO implementations ( e.g. Kerberos ). The aim of the SSO APIs is to
       enable authentication ( possibly mutual ) between a client ( source or
       initiator ) and a network service ( target or acceptor ). This is
       achieved via. the creation and processing of security tokens sent
       between the two parties. The steps which should be followed to
       successfully use the SSO APIs are as follows:
    <UL>
        <LI>Create an XSSOManagerFactory instance</LI>
        <LI>Use this factory to create/retrieve an XSSOManager
            instance.</LI>
        <LI>Depending on whether your code is acting as SSO source or target,
            you should use the XSSOManager instance to create an
            initiator security context, XSSOInitiatorContext or an
            acceptor security context, XSSOAcceptorContext
            respectively.</LI>
        <LI>On the initiator side, use the previously created context to process
            security tokens received from the acceptor side and to create
            security tokens to send to the acceptor side. On the acceptor side,
            use the previously created context to process security tokens
            received from the initiator side and to create security tokens to
            send to the initiator side.</LI>
    </UL>

    The interface supports the creation of XSSOManager instances
    which can subsequently be used to create security contexts.

    @since OOo 1.1.2
 */

published service SSOManagerFactory: XSSOManagerFactory;

}; }; }; };

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
